Macro en excel modifica formato

Hola, necesito ayuda en lo siguiente, tengo una tabla dinámica con datos, de la cual necesito listar ciertos datos, estos los va abriendo en hojas de diferentes nombres, por ejemplo hoja1, hoja2, en la medida que voy pinchando, bueno en las hojas nuevas necesito modificar cierto formatos, para no hacerlos cada vez, necesito crear una macro que lo haga, intente crear una con el grabador de macros, pero esta la deja limitada para la hoja en que la cree y después no la puedo utilizar en las siguientes hojas que vaya desplegando, no sé si se entiende bien, pero lo que necesito es una función que me permita ejecutar una macro en diferentes hojas no importando el nombre.
Gracias.
Pablo.
Respuesta
1
Puedes usar la grabadora de Macros y después modificas la Macro creada, aunque si activas la opción "Usar Referencias Relativas" te permite aplicar esa macro en cualquier hoja o Selección, sino, solo modifica todas las partes donde diga :
Sheets("Nombre de la Hoja"). 'etc...
Por
Activesheet
Que es la hoja que esté activa
Mira esta es la función, donde tengo problema es que al ejecutar en otra hoja de las mismas condiciones pero con otro nombre me sale el error.
Esta función me ordena de mayor a menor
Sub Macro3()
'
' Macro3 Macro
'
'
ActiveWorkbook.Worksheets("Hoja5").ListObjects("Tabla4").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja5").ListObjects("Tabla4").Sort.SortFields.Add _
Key:=Range("Tabla4[[ Total]]"), SortOn:=xlSortOnValues, Order:= _
xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Hoja5").ListObjects("Tabla4").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Lo que esta con negrilla es donde me sale el error
No hay ningún texto en negritas, pero lo único que tienes que hacer es cambiar las partes donde hace referencia a la hoja por ActiveSheet.
Ok, si lo hice pero también me arroja el error por la función ListObjects("Tabla4"), ya que también la cambia en cada hoja que voy desplegando de la tabla dimamica
Si solo hay un ListObject en cada hoja entonces haz referencia al Index así:
ListObjects(1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas