Hola, encontre lo siguiente en la red:
Crear tablas dinámicas sobre una tabla de datos que constantemente varia (mas columnas/filas) y no tener que preocuparme de actualizar el rango, uso la siguiente formula tabla=DESREF(Datos!$A$1;0;0;CONTARA(Datos!$A:$A);CONTARA(Datos!$1:$1))
El problema que tengo es que cada vez tengo que definir el nombre "tabla" es que la hoja en donde están los datos no siempre tiene el mismo nombre (en este caso es "Datos!")
Supongo que se debe a que -también- el libro donde esta la 'futura' tabla es distinto de el del trabajo 'anterior' en vba puedes definir nombres usando en la 'formulación' las funciones en ingles y un estilo de referencia R1C1
1) si necesitas crear el nombre haciendo referencia a la hoja 'activa' [que es una referencia 'por omision' en vba]...
[excel se encarga de 'completar' la formulacion con el nombre de la hoja activa] )
Sub DefinirNombreEnHojaActiva()
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
ActiveWorkbook.Names.Add _
Name:="Tabla", _
RefersToR1C1:="=Offset(r1c1,0,0,CountA(c1),CountA(r1))"
End Sub
2) si necesitas crear el nombre con referencia a alguna hoja en especial [se sustituye la referencia si el nombre existe]...
Sub DefinirNombreEnLibroActivo()
Dim Hoja As String: Hoja = Worksheets(3).Name
ActiveWorkbook.Names.Add _
Name:="Tabla", _
RefersToR1C1:="=Offset(" & _
Hoja & "!r1c1,0,0,CountA(" & _
Hoja & "!c1),CountA(" & _
Hoja & "!r1))"
End Sub |