Me estoy iniciando en esto de las macros y mi pregunta es ¿En qué parte de mi macro puedo poner la función screenupdating?
1 Respuesta
Respuesta de tavopz
2
2
tavopz, Conozco un poco acerca de Excel (fórmulas y VBA), pregunta y si...
De hecho debes usarlo al inicio y al final, así: Al Inicio: Application.ScreenUpdating = FALSE Al final: Application.ScreenUpdating = TRUE
Gracias por tu respuesta, sin embargo creo que no está funcionando, te escribo la macro a ver si me puedes ayudar. Private Sub Workbook_Activate() Application.ScreenUpdating = False End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Worksheets("BDATOS").Visible = xlSheetVeryHidden Worksheets("MB-2").Visible = xlSheetVeryHidden Worksheets("MB-7").Visible = xlSheetVeryHidden Worksheets("TOTAL").Visible = xlSheetVeryHidden End Sub Private Sub Workbook_Open() Worksheets("BDATOS").Visible = True Worksheets("MB-2").Visible = True Worksheets("MB-7").Visible = True Worksheets("TOTAL").Visible = True Application.ScreenUpdating = True End Sub Muchas Gracias
Lo que sucede es que estás usando varios eventos. Cada uno de estos eventos ocurre en un momento diferente, entonces si deseas que no se refresque la pantalla mientras ejecutas el programa al abrir el libro (Workbook_Open), entonces debes colocar el ScreenUpdating al inicio de este evento, y así sucesivamente. La idea es algo así: Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False Worksheets("BDATOS").Visible = xlSheetVeryHidden Worksheets("MB-2").Visible = xlSheetVeryHidden Worksheets("MB-7").Visible = xlSheetVeryHidden Worksheets("TOTAL").Visible = xlSheetVeryHidden Application.ScreenUpdating = True End Sub Private Sub Workbook_Open() Application.ScreenUpdating = False Worksheets("BDATOS").Visible = True Worksheets("MB-2").Visible = True Worksheets("MB-7").Visible = True Worksheets("TOTAL").Visible = True Application.ScreenUpdating = True End Sub Prueba para ver si te funciona.