Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/03/2010, 02:45
Avatar de Biopepe
Biopepe
 
Fecha de Ingreso: abril-2003
Ubicación: Bilbao
Mensajes: 63
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema con OnTime y BeforeSave en Excel

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.