Hola mrocf, gracias por responder.
Te pongo un extracto de los códigos:
Esta es la macro que lanza el evento OnTime; funciona bien.
Código:
Sub prueba()
On Error GoTo prueba_Error
ThisWorkbook.Unprotect ("password")
ThisWorkbook.Worksheets("LISTA DE MATERIALES").Visible = -1
ThisWorkbook.Worksheets("LISTA DE MATERIALES").Activate
ThisWorkbook.Save
ThisWorkbook.Close
On Error GoTo 0
Exit Sub
prueba_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure prueba of Módulo Módulo1"
End Sub
Este es un fragmento del evento Workbook_BeforeSave
Código:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim mola As Range
10 On Error GoTo rutina_error
20 MsgBox ThisWorkbook.Name
30 nombre_molon = ThisWorkbook.Name
40 Application.ScreenUpdating = True
'Ruta del archivo completo
50 ruta_completo = "\\Lista_materiales\Lista_Materiales_Completo.xls"
60 mola21 = IsFile(ruta_completo)
'Preparamos el Workbook actual
70 Workbooks(nombre_molon).Worksheets("L_MATERIALES").Visible = -1
80 Workbooks(nombre_molon).Worksheets("L_MATERIALES").Activate
90 Workbooks(nombre_molon).Worksheets("L_MATERIALES").Range("A12").Select
'Guardamos la OP actual
100 op = ActiveCell.Value
'Calculamos cuantas líneas tiene el archivo
110 topo = ultima_linea()
'Desprotegemos hoja actual
120 Workbooks(nombre_molon).Sheets("L_MATERIALES").Unprotect ("password")
130 Workbooks(nombre_molon).Sheets("L_MATERIALES").Range("A12:E701").Select
'Aplicamos formato condicional
140 Selection.FormatConditions.Delete
150 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$Q12=""SI"""
160 Selection.FormatConditions(1).Interior.ColorIndex = xlNone
170 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$Q12=""NO"""
180 Selection.FormatConditions(2).Interior.ColorIndex = 46
190 MsgBox "MOLA"
200 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=Y($Q12<>""SI"";$Q12<>""NO"";$A12<>"""";$O12<>""SOLO DISEÑO"")"
210 MsgBox "MOLA2"
220 Selection.FormatConditions(3).Interior.ColorIndex = 48
Las líneas 70,80 y 90 no funcionan si se lanza todo desde el evento OnTime, pero sí si se guarda el libro con botón de la barra de herramientas.
Las líneas 200 y 220 tampoco funcionan.