Saltar al contenido

EVENTO AL ABRIR EL LIBRO

publicado

Hola a todxs,

Necesito crear un evento de manera que al abrir el libro aplique un formato diferente a cada una de las hojas del libro.

Es cierto que dentro de ThisWorkbook tenemos el evento Private Sub Workbook_Open(), pero no me sirve dado que tengo más de 10 hojas diferentes cada una de ellas con un formato diferente.

Así que he pensado mejor en crear un evento dentro de cada hoja del libro. Algo así como Private Sub Worksheet_Activate(), pero sólo cuando se abra el libro (y no cuando se active la hoja).

El caso es que dentro de las hojas, no logro encontrar ningún evento que se inicie sólo cuando se abre el libro...

IMAGEN.thumb.jpg.0db7cb17e2743946bfb8cfab7add0682.jpg

Se os ocurre alguna idea?? Algo así como un For Each... Next en Private Sub Workbook_Open() que me recorra todas las hojas del libro y vaya ejecutando las macros contenida en cada uno de los libros.

No sé...

 

Featured Replies

publicado

Hola @paikerr

Si no quieres usar el Workbook_Open entonces no te queda más que usar el Activate de cada hoja y para evitar que se ejecute una y otra vez, podrías tener una variable "STATIC" en cada hoja con un flag (true/false) para saber si debes correr la macro o no y que la misma macro haga el cambio de valor de la variable para que no vuelva a ejecutarse.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/static-statement

publicado
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim hoja As Worksheet
For Each hoja In Sheets
  'Aquí la parte común a todas las hojas, por ejemplo
  hoja.Cells.Font.Size = 8
  hoja.Range("A1:F1").Interior.Color =VbYellow
  Select Case hoja.Name
    Case "Mi hoja1"
    	'Formatear Mi hoja1
    Case "Mi hoja2"
    	'Formatear Mi hoja2 
    Case "Mi hoja3"
    	'Formatear Mi hoja3 
	'...
	'...
	'... 
  End Select
Next
End Sub

 

publicado
  • Autor

Solucionado: Gracias a los dos por el aporte.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.