Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 59863998c9bf6ed5…

MALICIOUS

Office (OOXML)

1.66 MB Created: 2012-06-18 08:38:44 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2021-07-10
MD5: 39715046599b4ae443f340b2aa5d94fc SHA-1: 90041d4fec177899ee36ef8f68a87deeaee817c9 SHA-256: 59863998c9bf6ed5021cec1ac095ef4b677c0e1ba4ccf8f067c3618264307661
226 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1059 Command and Scripting Interpreter T1204.002 Malicious File T1566.001 Spearphishing Attachment

The file is an Excel macro-enabled document containing a Workbook_Open macro, which is a common technique for executing malicious code upon opening. The VBA code utilizes WScript.Shell and CreateObject to likely download and execute a second-stage payload, as indicated by the critical OLE_VBA_SHELL and OLE_VBA_WSCRIPT heuristic firings. No specific family could be identified, but the overall pattern suggests a downloader or dropper.

Heuristics 9

  • VBA project inside OOXML medium 5 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
            End If
            Set WshShell = CreateObject("WScript.Shell")
            Ping = WshShell.Run("ping -n 1 " & "192.227.20.160", 0, True)
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
       Set xlsObj = CreateObject("Excel.Application")
       xlsObj.ScreenUpdating = False
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    '''''''''''''''''''''''''''''''''''''''''
    Private Sub Workbook_Open()
        inicializar
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
    'Gorde
    karpeta = Environ("temp")
    excelizena = CreateObject("scripting.filesystemobject").getbasename(ThisWorkbook.Name)
  • External relationship high OOXML_EXTERNAL_REL
    External target in xl/externalLinks/_rels/externalLink2.xml.rels: file:///c:\Users\xcalvo\Desktop\Plantillak\REFINITVA TOTAL\plantillas_v1v2_20171116_PorcentajeArgentina_2Tarifas_Baan\te
  • Hidden worksheet (hidden) low OOXML_HIDDEN_SHEET
    Excel workbook contains 3 hidden sheet(s) — hidden sheets are commonly used to conceal macro code, staging data, or intermediate payload construction
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://ns.adobe.com/xap/1.0/ OOXML external relationship
    • http://www.w3.org/1999/02/22-rdf-syntax-ns#OOXML external relationship
    • http://purl.org/dc/elements/1.1/OOXML external relationship
    • http://www.iec.chOOXML external relationship
    • https://www.google.com/maps/search/?api=1&query=OOXML external relationship

Extracted artifacts 32

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 436168 bytes
SHA-256: c212ea82dafec56440dc817e0df8434eee9bc461518e88886fde5e2f23dd0fad
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  EXCEL LIBURUA
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''

Public contador As Integer
Public seHaCambiadoAPestańaItemView As Boolean



'''''''''''''''''''''''''''''''''''''''''
'''''''' EXCELa ZABALTZEAN
'''''''''''''''''''''''''''''''''''''''''
Private Sub Workbook_Open()
    inicializar
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' EXCELeko ORRI BAT ALDATZEAN
'''''''''''''''''''''''''''''''''''''''''
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
    cambioEnAlgunaHoja sh, Target
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' EXCELa AKTIBATZEAN
'''''''''''''''''''''''''''''''''''''''''
Private Sub Workbook_SheetActivate(ByVal sh As Object)
   ActivacionDeAlgunaHoja sh
End Sub




Attribute VB_Name = "Hoja1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Attribute VB_Control = "cmd_gmaps2, 2, 0, MSForms, CommandButton"
Attribute VB_Control = "cmd_gmaps, 1, 1, MSForms, CommandButton"
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  SUMMARY
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''
'''''''' GOOGLE MAPS BOTOIAK
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_gmaps_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_PoblacionObra").Value
End Sub



Private Sub cmd_gmaps2_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_Direccion").Value & "," & Sheets("BoM").Range("ID_Data_PoblacionCliente").Value
End Sub

Attribute VB_Name = "Hoja2"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Attribute VB_Control = "cmd_FromAcadRevit, 31, 0, MSForms, CommandButton"
Attribute VB_Control = "cmd_gmaps2, 23, 1, MSForms, CommandButton"
Attribute VB_Control = "cmd_updatePrices, 22, 2, MSForms, CommandButton"
Attribute VB_Control = "tgb_idiomaENCorp, 21, 3, MSForms, ToggleButton"
Attribute VB_Control = "tgb_idiomaESCorp, 20, 4, MSForms, ToggleButton"
Attribute VB_Control = "tgb_idiomaLocal, 19, 5, MSForms, ToggleButton"
Attribute VB_Control = "cmd_ModoXML, 17, 6, MSForms, CommandButton"
Attribute VB_Control = "CommandButton1, 16, 7, MSForms, CommandButton"
Attribute VB_Control = "btn_Cotizador, 14, 8, MSForms, CommandButton"
Attribute VB_Control = "btnNuevoArticulo, 7, 9, MSForms, CommandButton"
Attribute VB_Control = "btnQuitarImagenesBoM, 6, 10, MSForms, CommandButton"
Attribute VB_Control = "btnCargarImagenesBoM, 5, 11, MSForms, CommandButton"
Attribute VB_Control = "comboCambioCaratulas, 12, 12, MSForms, ComboBox"
Attribute VB_Control = "btn_importarPrecios, 13, 13, MSForms, CommandButton"
Attribute VB_Control = "cmd_gmaps, 15, 14, MSForms, CommandButton"
Attribute VB_Control = "cmd_Combinar, 24, 15, MSForms, CommandButton"
Attribute VB_Control = "cmd_SavePNG, 26, 16, MSForms, CommandButton"
Attribute VB_Control = "cmd_Factores, 27, 17, MSForms, CommandButton"
Attribute VB_Control = "cmd_SplitGrSGr, 28, 18, MSForms, CommandButton"
Attribute VB_Control = "cmd_JoinColumns, 29, 19, MSForms, CommandButton"
Attribute VB_Control = "cmd_toRepcon, 30, 20, MSForms, CommandButton"
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  BOM
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''


'''''''''''''''''''''''''''''''''''''''''
'''''''' COMBINAR BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_Combinar_Click()
    CombinarForm.Show
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' FAKTOREAK BOTOIAK
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_Factores_Click()
    FamilyFactors_Form.Show
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' AUTOCAD/REVIT BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_FromAcadRevit_Click()
    Mzz_FromAutocadRevit.fromACAD
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' JOIN BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_JoinColumns_Click()
    Mzz_Split_Join_ColumnasGR.unirAUnaColumna
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' PNGra BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_SavePNG_Click()
    Mzz_SavePNG.SavePNG
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' SPLIT BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_SplitGrSGr_Click()
    SplitInColumns_Form.Show
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' REPCONera BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_toRepcon_Click()
    Mzz_ToRepcon.toRepcon
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' PREZIOAK EGUNERATU BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_updatePrices_Click()
    actualizarPrecios
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' HIZKUNTZEN BOTOIAK
'''''''''''''''''''''''''''''''''''''''''
Private Sub tgb_idiomaENCorp_Click()
    Application.EnableEvents = False
    Dim finalizado As String
    finalizado = Sheets("Data").Range("CargaInicialFinalizada").Value
    If finalizado = "X" And tgb_idiomas <> "X" Then
        Application.Interactive = False
        If tgb_idiomaENCorp.Value = True Then
            tgb_idiomas = "X"
            If (tgb_idiomaESCorp.Value = False And tgb_idiomaLocal.Value = False) Then
                tgb_idiomas = ""
            End If
            tgb_idiomaESCorp.Value = False
            tgb_idiomaLocal.Value = False
            cambiaIdiomaDesc 2
            Sheets("Data").Range("IdiomaDatos").Value = "ENCorp"
        Else
            tgb_idiomas = "X"
            tgb_idiomaENCorp.Value = True
        End If
        Application.Interactive = True
    Else
        tgb_idiomas = ""
    End If
    Application.EnableEvents = True
End Sub

Private Sub tgb_idiomaESCorp_Click()
    Application.EnableEvents = False
    Dim finalizado As String
    finalizado = Sheets("Data").Range("CargaInicialFinalizada").Value
    If finalizado = "X" And tgb_idiomas <> "X" Then
        Application.Interactive = False
        If tgb_idiomaESCorp.Value = True Then
            tgb_idiomas = "X"
            If (tgb_idiomaENCorp.Value = False And tgb_idiomaLocal.Value = False) Then
                tgb_idiomas = ""
            End If
            tgb_idiomaENCorp.Value = False
            tgb_idiomaLocal.Value = False
            cambiaIdiomaDesc 1
            Sheets("Data").Range("IdiomaDatos").Value = "ESCorp"
        Else
            tgb_idiomas = "X"
            tgb_idiomaESCorp.Value = True
        End If
        Application.Interactive = True
    Else
        tgb_idiomas = ""
    End If
    Application.EnableEvents = True
End Sub


Private Sub tgb_idiomaLocal_Click()
    Application.EnableEvents = False
    Dim finalizado As String
    finalizado = Sheets("Data").Range("CargaInicialFinalizada").Value
    If finalizado = "X" And tgb_idiomas <> "X" Then
        Application.Interactive = False
        If tgb_idiomaLocal.Value = True Then
            tgb_idiomas = "X"
            If (tgb_idiomaENCorp.Value = False And tgb_idiomaESCorp.Value = False) Then
                tgb_idiomas = ""
            End If
            tgb_idiomaENCorp.Value = False
            tgb_idiomaESCorp.Value = False
            cambiaIdiomaDesc 0
            Sheets("Data").Range("IdiomaDatos").Value = "local"
        Else
            tgb_idiomas = "X"
            tgb_idiomaLocal.Value = True
        End If
        Application.Interactive = True
    Else
        tgb_idiomas = ""
    End If
    Application.EnableEvents = True
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' COTIZADOR BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btn_Cotizador_Click()
    If Sheets("Data").Range("tipo_estudio").Value = "estudioMexico" Then
        Cotizador
    ElseIf Sheets("Data").Range("tipo_estudio").Value = "estudioChequia" Then
        exportSteny
    ElseIf Sheets("Data").Range("tipo_estudio").Value = "estudioEslovaquia" Then
        exportStenySK
    ElseIf Sheets("Data").Range("tipo_estudio").Value = "estudioAlemania" Then
        ExportMLGermanyNew
    End If
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' PREZIOAK INPORTATU BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btn_importarPrecios_Click()
    ImportForm.Show
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' 3D IRUDIAK BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnCargarImagenesBoM_Click()
    If Worksheets("Data").Range("UtilizandoCD").Value = "X" Then
        CargarImagenesBoMCD
    Else
        CargarImagenesBoM
    End If
    btnCargarImagenesBoM.Visible = False
    btnQuitarImagenesBoM.Visible = True
    ComprimirImagenes
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' 3D IRUDIAK KENDU BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnQuitarImagenesBoM_Click()
    QuitarImagenesBoM
    btnQuitarImagenesBoM.Visible = False
    btnCargarImagenesBoM.Visible = True
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' LERRO BERRIA BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnNuevoArticulo_Click()
    CreaEliminaLinea.Show
End Sub


'''''''''''''''''''''''''''''''''''''''''
'''''''' HIZKUNTZA ALDATU
'''''''''''''''''''''''''''''''''''''''''
Private Sub cbox_idiomaMat_Change()
    Select Case cbox_idiomaMat.Value
        Case "local"
            cambiaIdiomaDesc 0
        Case "ESCorp"
            cambiaIdiomaDesc 1
        Case "ENCorp"
            cambiaIdiomaDesc 2
        Case Else
            cambiaIdiomaDesc 0
    End Select
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' GOOGLE MAPS BOTOIAK
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_gmaps_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_PoblacionObra").Value
End Sub

Private Sub cmd_gmaps2_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_Direccion").Value & "," & Sheets("BoM").Range("ID_Data_PoblacionCliente").Value
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' ONLINE/OFFLINE BOTOIA
'''''''''''''''''''''''''''''''''''''''''

Private Sub cmd_ModoXML_Click()
    If cmd_ModoXML.Caption = "Online" Then
        cmd_ModoXML.Caption = "Offline"
        cmd_ModoXML.BackColor = RGB(255, 0, 0)
        tgb_idiomaLocal.Enabled = False
        tgb_idiomaESCorp.Enabled = False
        tgb_idiomaENCorp.Enabled = False
        'cmd_updatePrices.Enabled = False
    Else
        cmd_ModoXML.Caption = "Online"
        cmd_ModoXML.BackColor = RGB(102, 255, 102)
        tgb_idiomaLocal.Enabled = True
        tgb_idiomaESCorp.Enabled = True
        tgb_idiomaENCorp.Enabled = True
        'Ezgaitu eta berriro gaitu, konexio edukita Offline-tik Onlinera gatozen kasuan, ez baititu lehenengoan hizkuntza botoiak aktibatzen (bug).
        tgb_idiomaLocal.Enabled = False
        tgb_idiomaESCorp.Enabled = False
        tgb_idiomaENCorp.Enabled = False
        tgb_idiomaLocal.Enabled = True
        tgb_idiomaESCorp.Enabled = True
        tgb_idiomaENCorp.Enabled = True
        'cmd_updatePrices.Enabled = True
    End If
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' ZUTABE BERRIA BOTOIA
'''''''''''''''''''''''''''''''''''''''''

Private Sub CommandButton1_Click()
    CreaEliminaColumna.Show
End Sub



Attribute VB_Name = "Hoja3"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Hoja4"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Hoja5"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Attribute VB_Control = "cmd_gmaps2, 11, 0, MSForms, CommandButton"
Attribute VB_Control = "btn_Release, 8, 1, MSForms, CommandButton"
Attribute VB_Control = "btn_Freight, 7, 2, MSForms, CommandButton"
Attribute VB_Control = "btnListadoPDF, 5, 3, MSForms, CommandButton"
Attribute VB_Control = "btnCargarImagenesItemView, 3, 4, MSForms, CommandButton"
Attribute VB_Control = "btnQuitarImagenesItemView, 4, 5, MSForms, CommandButton"
Attribute VB_Control = "cmd_gmaps, 10, 6, MSForms, CommandButton"
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  ITEMVIEW
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim actualizandoPT As Boolean

'''''''''''''''''''''''''''''''''''''''''
'''''''' FREIGHT BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btn_Freight_Click()
    Freight_Form.Show
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' RELEASE BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btn_Release_Click()
    If (Sheets("ItemView").Range("ID_Data_Freight").Value = "") Then
        MsgBox "Please, Fill Freight and Union before exporting to Release", vbOKOnly, "Warning"
    Else
        ReleaseForm.Show
    End If
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' 3D IRUDIAK BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnCargarImagenesItemView_Click()
    If Worksheets("Data").Range("UtilizandoCD").Value = "X" Then
        CargarImagenesItemViewCD
    Else
        CargarImagenesItemView
    End If
    btnCargarImagenesItemView.Visible = False
    btnQuitarImagenesItemView.Visible = True
    ComprimirImagenes
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' 3D IRUDIAK KENDU BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnQuitarImagenesItemView_Click()
    QuitarImagenesItemView
    btnQuitarImagenesItemView.Visible = False
    btnCargarImagenesItemView.Visible = True
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' WORD/PDF BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub btnListadoPDF_Click()
        ImageFormExt.Show
End Sub

'''''''''''''''''''''''''''''''''''''''''
'''''''' GOOGLE MAPS BOTOIAK
'''''''''''''''''''''''''''''''''''''''''
Private Sub cmd_gmaps_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_PoblacionObra").Value
End Sub


Private Sub cmd_gmaps2_Click()
    gmaps_arakatu Sheets("BoM").Range("ID_Data_Direccion").Value & "," & Sheets("BoM").Range("ID_Data_PoblacionCliente").Value
End Sub


Attribute VB_Name = "M1_Varios"
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  FUNTZIOEN DEKLARAZIOAK
''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''

Public voyACambiarCaratulas As String
Public voyACambiarCondicion As String
Public tgb_idiomas As String


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''   UR MARKA FUNTZIOA (OFERTAK)  '''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub AddWatermark(hoja As String, x As Integer, y As Integer)
    Dim Texto As String
    Texto = Worksheets("Languages").Range("ID_MarcaDeAguaOferta").Value
    ThisWorkbook.Worksheets(hoja).Select
    With ActiveSheet.Shapes.AddTextEffect(msoTextEffect2, Texto, _
    "Arial Black", 28, msoTrue, msoTrue, _
    x, y)
    End With
End Sub



'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''  GENERIKOAK DAUDEN KONPROBATU  '''''''''''''
'''''' (HONEN ARABERA ONDOREN UR MARKA SARTUKO DA) ''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub ComprobarGenericos()
    If (Worksheets("Data").Range("HayArticulosGenericos").Value = "") Then
        Dim InicioCodigos As Integer
        InicioCodigos = Worksheets("Data").Range("FilaInicioArticulos").Value
        Dim FinCodigos As Integer
        FinCodigos = Worksheets("Data").Range("FilaFinArticulos").Value
        Dim ColumnaCodigos As String
        ColumnaCodigos = "D"
        Dim codigo As String
        For rowind = InicioCodigos To FinCodigos
            On Error GoTo x:
            codigo = Range(ColumnaCodigos & rowind).Value
            codigo = Left(Right(codigo, 3), 1)
            If codigo = "G" Then
                Worksheets("Data").Range("HayArticulosGenericos").Value = "OK"
                Exit Sub
            End If
x:
        Next rowind
        Range("B" & InicioCodigos).Select
    End If
End Sub



'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     HIZKUNTZA BOTOI DENAK DESKLIKATU       ''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub unpushedDescButtons()
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    Dim finalizado As String
    finalizado = Sheets("Data").Range("CargaInicialFinalizada").Value
    If finalizado = "X" And tgb_idiomas <> "X" Then
        tgb_idiomas = "X"
        Sheets("BoM").OLEObjects("tgb_idiomaESCorp").Object.Value = False
        Sheets("BoM").OLEObjects("tgb_idiomaLocal").Object.Value = False
        Sheets("BoM").OLEObjects("tgb_idiomaENCorp").Object.Value = False
    End If
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     ARTIKULU DENAK SALMENTAN               ''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub ipiniDenaSalmentan()
    Dim inicio As Integer
    Dim fin As Integer
    inicio = Sheets("Data").Range("FilaInicioArticulos").Value
    fin = Sheets("Data").Range("FilaFinArticulos").Value
    Sheets("BoM").Range("F" & inicio & ":F" & fin).Formula = "=A2Venta"
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     PRO DUTENEI IKONOA SARTU/KENDU         ''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub PROzesatu() 'Bakarrik behin exekutatu beharrekoa
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    Dim inicio As Integer
    Dim fin As Integer
    Dim sh As Shape
    Sheets("BoM").Shapes("PRO").Visible = False
    inicio = Sheets("Data").Range("FilaInicioArticulos").Value
    fin = Sheets("Data").Range("FilaFinArticulos").Value
    For i = inicio To fin
        'Kendu PRO ikonoa beti eta gero ikusi berriz ipini beharra dagoen
        kenduIkonoaBaldinBadu "D" & i
        If Sheets("BoM").Range("A" & i).Value = "PRO" Then
            Sheets("BoM").Range("A" & i).Font.Color = vbWhite
            Set sh = Sheets("BoM").Shapes("PRO").Duplicate
            sh.Left = Sheets("BoM").Range("D" & i).Left + (Sheets("BoM").Range("D" & i).Width - sh.Width)
            sh.Top = Sheets("BoM").Range("D" & i).Top
            sh.Visible = True
        End If
    Next
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

Sub PROzesatuBakarra(ByVal linea As Integer) 'Lerro jakin baterako begiratu POR ikonoa behar duen.
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = True
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    babestua = Sheets("BoM").ProtectContents
    If (babestua) Then
        Sheets("BoM").Unprotect
    End If
    'Kendu PRO ikonoa beti eta gero ikusi berriz ipini beharra dagoen
    kenduIkonoaBaldinBadu "D" & linea
    Dim sh As Shape
    Sheets("BoM").Shapes("PRO").Visible = False
    If Sheets("BoM").Range("A" & linea).Value = "PRO" Then
         Sheets("BoM").Range("A" & linea).Font.Color = vbWhite
         Set sh = Sheets("BoM").Shapes("PRO").Duplicate
         sh.Left = Sheets("BoM").Range("D" & linea).Left + (Sheets("BoM").Range("D" & linea).Width - sh.Width)
         sh.Top = Sheets("BoM").Range("D" & linea).Top
         sh.Visible = True
    End If
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
    If babestua Then
        ThisWorkbook.Worksheets("BoM").Protect AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingRows:=True, AllowDeletingRows:=True, UserInterfaceOnly:=True
    End If
End Sub

Sub kenduIkonoaBaldinBadu(ByVal zelda As String)
    For Each Shp In Sheets("BoM").Shapes
        If (Shp.Name = "PRO") Then
            If Not Intersect(Range(Shp.TopLeftCell.Address), Sheets("BoM").Range(zelda)) Is Nothing Then
                Shp.Delete
            End If
        End If
    Next
End Sub


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     FAMILIA EZEZAGUNA IPINI HUTSA DUTENEI  ''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub familiaEzezaguna()
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = True
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    Dim inicio As Integer
    Dim fin As Integer
    inicio = Sheets("Data").Range("FilaInicioArticulos").Value
    fin = Sheets("Data").Range("FilaFinArticulos").Value
    For i = inicio To fin
        familiaEzezagunaLerroa i
    Next
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

Sub familiaEzezagunaLerroa(ByVal lerroa As Integer)
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    Dim FamiliaZut As Integer
    Dim inicio As Integer
    Dim filaTitulos As Integer
    Dim idFamilia As String
    inicio = Sheets("Data").Range("FilaInicioArticulos").Value
    fin = Sheets("Data").Range("FilaFinArticulos").Value
    filaTitulos = inicio - 1
    idFamilia = Sheets("Languages").Range("ID_FamiliaBaan").Value
    FamiliaZut = Application.Match(idFamilia, Sheets("BoM").Range(filaTitulos & ":" & filaTitulos), 0)
    If (Trim(Sheets("BoM").Cells(lerroa, FamiliaZut).Value) = "") Then
        Sheets("BoM").Cells(lerroa, FamiliaZut).Value = Sheets("Languages").Range("id_FamiliaDesconicida").Value
    End If
    Application.ScreenUpdating = egoera
End Sub


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''  TAULA DINAMIKOA '''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub DeleteAllPivotTablesInWorkbook()
    Dim xWs As Worksheet
    Dim xPT As PivotTable
    On Error GoTo x:
    Sheets("Summary").Unprotect
    Sheets("BoM").Unprotect
    Sheets("Languages").Unprotect
    Sheets("Data").Unprotect
    For Each xWs In Application.ActiveWorkbook.Worksheets
        For Each xPT In xWs.PivotTables
            xWs.Range(xPT.TableRange2.Address).Delete Shift:=xlUp
        Next
    Next
    ThisWorkbook.Worksheets("Summary").Protect AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True
    ThisWorkbook.Worksheets("BoM").Protect AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingRows:=True, AllowDeletingRows:=True, UserInterfaceOnly:=True
    ThisWorkbook.Worksheets("BoM").EnableOutlining = True
    ThisWorkbook.Worksheets("Languages").Protect
    ThisWorkbook.Worksheets("Data").Protect
x:
End Sub

Sub ReasignaRangoAFormatoCondicionalItemView()
    Sheets("ItemView").Range("D:D").FormatConditions(1).ModifyAppliesToRange Range("D:D")
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''  BALDINTZAK EDO LISTA MOTAK ALDATU ''''''''''
''''''''   (BALOREAK FORMULAK BIHURTZEKO BERRIZ)  '''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub CambiarCondicion()
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    Dim InicioCondiciones As Integer
    InicioCondiciones = Worksheets("Data").Range("FilaInicioArticulos").Value
    Dim FinCondiciones As Integer
    FinCondiciones = Worksheets("Data").Range("FilaFinArticulos").Value
    Dim ColumnaCondiciones As String
    ColumnaCondiciones = "F"
    Dim Condicion As String
    Dim Formula As String
    For rowind = InicioCondiciones To FinCondiciones
        On Error GoTo x:
        Condicion = Worksheets("BoM").Range(ColumnaCondiciones & rowind).Value
        Formula = WorksheetFunction.VLookup(Condicion, Worksheets("Data").[F33:G37], 2, 0)
        Worksheets("BoM").Range(ColumnaCondiciones & rowind).Formula = Formula
        Worksheets("BoM").Range(ColumnaCondiciones & rowind).NumberFormat = "General"
x:
    Next rowind
    Worksheets("BoM").Range("B" & InicioCondiciones).Select
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

Public Sub CambiarUnaCondicion(fila As Integer)
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    Dim ColumnaCondiciones As String
    ColumnaCondiciones = ConvertToLetter(Worksheets("Data").Range("NumColumnaCondicion").Value)
    On Error GoTo x:
    voyACambiarCondicion = "X"
    Condicion = Worksheets("BoM").Range(ColumnaCondiciones & fila).Value
        Formula = WorksheetFunction.VLookup(Condicion, Worksheets("Data").[F33:G37], 2, 0)
        Worksheets("BoM").Range(ColumnaCondiciones & fila).Formula = Formula
        Worksheets("BoM").Range(ColumnaCondiciones & fila).NumberFormat = "General"
    voyACambiarCondicion = ""
x:
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     BAREMO/DESKONTU LERROAK EGOKITU   '''''''''
''''''''''''  DAGOKION FILIALAREN ARABERA    ''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub EliminarFilasBaremo()
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
    'Momentuz ezabatu CZ/SK eta Argentina -> Espainia uzteko soilik
    'CZSK 3 lerro (lerro huts bat kenduz)
    'Argentina 3 lerro (lerro huts bat kenduz)
    If (Sheets("Data").Range("tipo_estudio").Value = "estudioEspana") Then
        ezabatuPortzentaiak "Tag_BaremoCZSK", 3
        ezabatuPortzentaiak "Tag_BaremoArgentina", 3
    ElseIf (Sheets("Data").Range("tipo_estudio").Value = "estudioChequia" Or Sheets("Data").Range("tipo_estudio").Value = "estudioEslovaquia" Or Sheets("Data").Range("tipo_estudio").Value = "estudioRumania") Then
        ezabatuPortzentaiak "Tag_BaremoEspana", 5
        ezabatuPortzentaiak "Tag_BaremoArgentina", 3
    ElseIf (Sheets("Data").Range("tipo_estudio").Value = "estudioArgentina") Then
        ezabatuPortzentaiak "Tag_BaremoEspana", 5
        ezabatuPortzentaiak "Tag_BaremoCZSK", 3
    Else ' momentuz besteak Txekia eta Eslovakia bezala
        ezabatuPortzentaiak "Tag_BaremoEspana", 5
        ezabatuPortzentaiak "Tag_BaremoArgentina", 3
    End If
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub

Sub ezabatuPortzentaiak(ByVal tag As String, ByVal kop As Integer)
    Dim columnaTags As String
    Dim ezabatzekoTag
    columnaTags = ConvertToLetter(Sheets("Data").Range("NumColumInicioLista").Value - 3)
    ezabatzekoTag = Application.IfError(Application.Match(tag, Sheets("BoM").Range(columnaTags & "1:" & columnaTags & "5000"), 0), 0)
    If ezabatzekoTag > 0 Then
        EzabatuLerroak ezabatzekoTag, kop
    End If
End Sub



'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''    BAREMO LERROEI DAGOKIEN FORMATUA EMAN   ''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub formatosBaremoTotalesEspana(ByVal row As Integer, ByVal column As Integer)
    egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
        If (row = Sheets("Data").Range("FilaUnidadLista").Value) Then
            formato = "#,##0.0000" & " """ & "/ " & Sheets("BoM").Cells(row, column).Value & """"
            non = Application.IfError(Application.Match(ThisWorkbook.Names("ID_PrecioOfertaAlqDiaUnidad").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
            Sheets("BoM").Cells(non, column).NumberFormat = formato
        Else
            columnaCheck = ConvertToLetter(Sheets("Data").Range("NumColumInicioLista").Value - 1)
            hasi = Sheets("Data").Range("NumColumInicioLista").Value
            ama = Sheets("Data").Range("NumColumFinLista").Value
            
            If (Sheets("BoM").Range(columnaCheck & row).Value = ThisWorkbook.Names("ID_Baremo").RefersToRange(1, 1)) Then
                For i = hasi To ama
                    formato1 = "#,##0.0000" & " """ & "/ " & Sheets("BoM").Cells(Sheets("Data").Range("FilaUnidadLista").Value, i) & """"
                    formato2 = "0.00‰"
                
                    Sheets("BoM").Cells(row + 1, i).NumberFormat = formato1
                    Sheets("BoM").Cells(row, i).NumberFormat = formato2
                    Sheets("BoM").Cells(row, i).Value = ""
                Next
            Else
                For i = hasi To ama
                    formato1 = "0.00‰"
                    formato2 = "#,##0.0000" & " """ & "/ " & Sheets("BoM").Cells(Sheets("Data").Range("FilaUnidadLista").Value, i) & """"
                
                    Sheets("BoM").Cells(row, i).NumberFormat = formato2
                    Sheets("BoM").Cells(row, i).Value = ""
                    Sheets("BoM").Cells(row + 1, i).NumberFormat = formato1
                Next
            End If
        End If
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub


Sub formatoPrecioAlqDia(ByVal row As Integer, ByVal column As Integer)
    If (row = Sheets("Data").Range("FilaUnidadLista").Value) Then
            formato = "#,##0.0000" & " """ & "/ " & Sheets("BoM").Cells(row, column).Value & """"
            non = Application.IfError(Application.Match(ThisWorkbook.Names("ID_PrecioAlqUnidadLista").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
            Sheets("BoM").Cells(non, column).NumberFormat = formato
    End If
End Sub

Sub iniciarFormatoPrecioAlqDia()
    non = Application.IfError(Application.Match(ThisWorkbook.Names("ID_PrecioAlqUnidadLista").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
    inicio = Sheets("Data").Range("NumColumInicioLista").Value
    fin = Sheets("Data").Range("NumColumFinLista").Value
    For i = inicio To fin
        unidad = Sheets("BoM").Cells(Sheets("Data").Range("FilaUnidadLista").Value, i).Value
        formato2 = "#,##0.0000" & " """ & "/ " & unidad & """"
        Sheets("BoM").Cells(non, i).NumberFormat = formato2
    Next
End Sub

Sub iniciarFormatoServicioCZSK()
    nonServicio = Application.IfError(Application.Match(ThisWorkbook.Names("ID_Servicio").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
    nonPortzentaia = Application.IfError(Application.Match(ThisWorkbook.Names("ID_Porcentaje").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
    inicio = Sheets("Data").Range("NumColumInicioLista").Value
    fin = Sheets("Data").Range("NumColumFinLista").Value
    For i = inicio To fin
        Sheets("BoM").Cells(nonServicio, i).Formula = "=" & ConvertToLetter(i) & nonPortzentaia & " * 100"
        Sheets("BoM").Cells(nonServicio, i).Locked = True
        Sheets("BoM").Cells(nonServicio, i).Interior.Color = RGB(141, 180, 226)
    Next
End Sub

Sub iniciarFormatoBaremo()
    non = Application.IfError(Application.Match(ThisWorkbook.Names("ID_BAREMO").RefersToRange(1, 1), Sheets("BoM").Range(ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1) & ":" & ConvertToLetter(Sheets("Data").Range("NumColumInicioLista") - 1)), 0), 0)
    If non = Sheets("Data").Range("FilaBaremoPrecioOfertado").Value Then
        lerroa1 = non
        lerroa2 = non - 1
    Else
        lerroa1 = non
        lerroa2 = non + 1
    End If
        formato = "0.00‰"
        Sheets("BoM").Range(Sheets("Data").Range("ColumInicioLista").Value & lerroa1 & ":" & Sheets("Data").Range("ColumFinLista").Value & lerroa1).NumberFormat = formato
        inicio = Sheets("Data").Range("ColumInicioLista").Value
        fin = Sheets("Data").Range("ColumFinLista").Value
        For i = inicio To fin
            unidad = Sheets("BoM").Cells(Sheets("Data").Range("FilaUnidadLista").Value, i).Value
            formato2 = "#,##0.0000" & " """ & "/ " & unidad & """"
            Sheets("BoM").Cells(lerroa2, i).NumberFormat = formato2
        Next
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''     XEHETASUNENTZAT TESTU KOADROA SARTZEKO ''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub addExplanationBox()
   egoera = Application.ScreenUpdating
    Application.ScreenUpdating = False
    egoera2 = Application.EnableEvents
    Application.EnableEvents = False
   inicio = Sheets("Data").Range("FilaInicioArticulos").Value
    sarpuntua = inicio - 3
    Set sh = Sheets("BoM").Shapes.AddTextbox(msoTextOrientationHorizontal, Sheets("BoM").Range("A" & sarpuntua).Left + 2, Sheets("BoM").Range("A" & sarpuntua).Top + 5, Sheets("BoM").Range("A1:I1").Width - 10, 70)
    With sh
        .Name = "CommentBox1"
        .Locked = False
        .ControlFormat.LockedText = False
        .line.Visible = True
        .line.ForeColor.ObjectThemeColor = msoThemeColorText1
        .TextFrame2.TextRange.text = "Details:" & vbNewLine & Sheets("Data").Range("CommentBox").Value
        .TextFrame2.TextRange.Font.Bold = True
        .TextFrame2.TextRange.Font.Size = 16
    End With
    Application.ScreenUpdating = egoera
    Application.EnableEvents = egoera2
End Sub





Attribute VB_Name = "ReleaseForm"
Attribute VB_Base = "0{6413E8C5-15B2-4302-BE55-4D47AE01DF98}{982996FD-F639-421C-91D8-4CB9C9708580}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
'''''''''''''''''''''''''''
'2019 Ulma CyE.S.Coop.
'xcalvo@ulmaconstruction.es
'''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  RELEASE USA
''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''


'''''''''''''''''''''''''''''''''''''''''
'''''''' OK BOTOIA
'''''''''''''''''''''''''''''''''''''''''
Private Sub CommandButton1_Click()
If (Application.Trim(ReleaseForm.txt_Hours.Value) = "" Or Application.Trim(ReleaseForm.txt_Salesman.Value) = "" Or Application.Trim(ReleaseForm.txt_Family.Value) = "" Or Application.Trim(ReleaseForm.txt_JobNumber.Value) = "" Or Application.Trim(ReleaseForm.txt_Project.Value) = "" Or Application.Trim(ReleaseForm.txt_Area.Value) = "" Or Application.Trim(ReleaseForm.txt_ShipDate.Value) = "") Then
   If Application.Trim(ReleaseForm.txt_Hours.Value) = "" Then
        ReleaseForm.txt_Hours.BackColor = vbRed
   Else
        ReleaseForm.txt_Hours.BackColor = &HE0E0E0
   End If
   If Application.Trim(ReleaseForm.txt_Salesman.Value) = "" Then
        ReleaseForm.txt_Salesman.BackColor = vbRed
   Else
        ReleaseForm.txt_Salesman.BackColor = &HE0E0E0
   End If
   If Application.Trim(ReleaseForm.txt_Family.Value) = "" Then
        ReleaseForm.txt_Family.BackColor = vbRed
   Else
        ReleaseForm.txt_Family.BackColor = &HE0E0E0
   End If
   If Application.Trim(ReleaseForm.txt_JobNumber.Value) = "" Then
        ReleaseForm.txt_JobNumber.BackColor = vbRed
   Else
        ReleaseForm.txt_JobNumber.BackColor = &HE0E0E0
   End If
   If Application.Trim(ReleaseForm.txt_Project.Value) = "" Then
        ReleaseForm.txt_Project.BackColor = vbRed
   Else
        ReleaseForm.txt_Project.BackColor = &HE0E0E0
   End If
   If Application.Trim(ReleaseForm.txt_Area.Value) = "" Then
        ReleaseForm.txt_Area.BackColor = vbRed
…
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 1141248 bytes
SHA-256: c840f93a79c51876e1e9901b496f0f19c7605600c622381e75aa38049bff653d
emf_00.emf ooxml-emf OOXML EMF part: xl/media/image33.emf 28672 bytes
SHA-256: 4699f4cce84d86271af68fc6f2f30c27d1332fd2b66811a554eb10eec8cf0726
emf_01.emf ooxml-emf OOXML EMF part: xl/media/image32.emf 138244 bytes
SHA-256: 825a7b4a64648f33649f64f8a45a83f7bba3f5ea21a5fb57ea3734206e0cfdaa
emf_02.emf ooxml-emf OOXML EMF part: xl/media/image31.emf 138244 bytes
SHA-256: 25460e60a8dd14ab99900a0cc6ff4233017650149d046d06f5fee54e57e5614f
emf_03.emf ooxml-emf OOXML EMF part: xl/media/image30.emf 26860 bytes
SHA-256: 168550513a4395cac5163c7a6c743e4b78922df2ca6c182051fcd92019149a02
emf_04.emf ooxml-emf OOXML EMF part: xl/media/image29.emf 2688 bytes
SHA-256: 8d31ca434a3d6cf462a43b6b281788c336c7d97f9775aeb8da1131cd0e568d21
emf_05.emf ooxml-emf OOXML EMF part: xl/media/image39.emf 2744 bytes
SHA-256: 75225e2b9bb0e4593a4864b82440ede15b4f9fcae97c25752bdde449e79cb1a8
emf_06.emf ooxml-emf OOXML EMF part: xl/media/image38.emf 17452 bytes
SHA-256: 55462e7d27219b297bc4a5bc3508df876391b893d111de20503f37cb7e094e8b
emf_07.emf ooxml-emf OOXML EMF part: xl/media/image37.emf 2768 bytes
SHA-256: 93c058523d3f834b529432b78d2a61b783a356d54206cea7976571733952c20a
emf_08.emf ooxml-emf OOXML EMF part: xl/media/image36.emf 2732 bytes
SHA-256: 9390ee954d19d1ff8798d4556eb6adbc937ae9d5f7c293beba9f89df6e8a0d61
emf_09.emf ooxml-emf OOXML EMF part: xl/media/image35.emf 2780 bytes
SHA-256: 7fd01a624000fbf534920a805e8ac04ac9d13b499372261b7414e1904c2f410a
emf_10.emf ooxml-emf OOXML EMF part: xl/media/image28.emf 2688 bytes
SHA-256: 0c90f1c676535b5ac8c9c062dacb57fc31c7edfc054c9b4af74eaf6296c30956
emf_11.emf ooxml-emf OOXML EMF part: xl/media/image27.emf 28672 bytes
SHA-256: 3136127f94e10135fecd102ddd0a29928ba3b619c6de7df5757f5b5bd0a19c27
emf_12.emf ooxml-emf OOXML EMF part: xl/media/image20.emf 2696 bytes
SHA-256: 33f46223fb8d71f9f5b14865d484ccc1458743b9bda58414518e8ca341098b0b
emf_13.emf ooxml-emf OOXML EMF part: xl/media/image19.emf 28672 bytes
SHA-256: 8a58ec1ea5d59d6776846520035f91236fec4c1c0b15bf6fe05c3f2377660d86
emf_14.emf ooxml-emf OOXML EMF part: xl/media/image18.emf 17452 bytes
SHA-256: 0e1d3f3a7d62edb6d125dde0b365d90ffd771faf959583a3b9ea08199dcf0024
emf_15.emf ooxml-emf OOXML EMF part: xl/media/image17.emf 4228 bytes
SHA-256: 641aeaf3c50b2bedb68244169fc0ad6cf71e574d9af604b95430d4ef9a9c5fd2
emf_16.emf ooxml-emf OOXML EMF part: xl/media/image16.emf 14284 bytes
SHA-256: af2355dc79241630b506ffac3396b7bf28c11f301d7640792c0e192e594ba2a9
emf_17.emf ooxml-emf OOXML EMF part: xl/media/image21.emf 42188 bytes
SHA-256: 1da5e374f68ee3c4716d3894a9257815e86e4120fb2b06a87fc00462373e5939
emf_18.emf ooxml-emf OOXML EMF part: xl/media/image22.emf 2712 bytes
SHA-256: a2d89c52a1f47ca965bf08ee09e1ca427ac1f3b31f3645bb091802d8a644dff7
emf_19.emf ooxml-emf OOXML EMF part: xl/media/image23.emf 2744 bytes
SHA-256: f3d8d9cd3fb80f602ea251c9184d1a5d0c831f9d8e5e5ffd6498cf65835f963f
emf_20.emf ooxml-emf OOXML EMF part: xl/media/image25.emf 41572 bytes
SHA-256: e6f4d299b473369100d599992af0436c243d0f01b3a9cd2a677bea10e2cfce26
emf_21.emf ooxml-emf OOXML EMF part: xl/media/image24.emf 2732 bytes
SHA-256: f6142830769c8553379bda754eb74b1e8aec9fe574e27f4763c80a45c59ea86d
emf_22.emf ooxml-emf OOXML EMF part: xl/media/image40.emf 2868 bytes
SHA-256: 4fe567e2fa2fdf81623b7ac711f828957f0b7f923cab14d16cb7db4cd22ead26
emf_23.emf ooxml-emf OOXML EMF part: xl/media/image45.emf 17452 bytes
SHA-256: ecce20d155edcebb2c9b27065f2f754cdcee85860ee9d6a20fa3e14d89871764
emf_24.emf ooxml-emf OOXML EMF part: xl/media/image44.emf 2768 bytes
SHA-256: f225b187a55db7cc4a0f819ec7bb00c73bc3f78862b1fc3c3c05b817536357cf
emf_25.emf ooxml-emf OOXML EMF part: xl/media/image43.emf 2732 bytes
SHA-256: 89c3e162830c98255095ee2ef009d9ecf769c4d4d29d97739334d8d708260292
emf_26.emf ooxml-emf OOXML EMF part: xl/media/image42.emf 2780 bytes
SHA-256: 3a8ba6c3ce7183cabaf106a0f952cd5d6cfa51903689900f262e52a2bf4ade68
emf_27.emf ooxml-emf OOXML EMF part: xl/media/image41.emf 2760 bytes
SHA-256: 7cdf7fe35c7c384afc482670665f0a975fd70d28fbeaa61f6c334049aaa4f41f
emf_28.emf ooxml-emf OOXML EMF part: xl/media/image46.emf 2744 bytes
SHA-256: 9719199c41e20bd2d23ba919fd5453f5eb120cd717ca6a29485839171d08e04e
emf_29.emf ooxml-emf OOXML EMF part: xl/media/image47.emf 2888 bytes
SHA-256: 607858bc73d5c5a4164dd09700fdb83a5231f443c0882b44800baa3de57cacaa