¿Como puedo saber el nombre de la tabla excel?

No me refiero al nombre de la hoja si no al nombre de la tabla de la hoja actual lo que pasa es que genero un formato que copia una hoja y al momento de copiarla la tabla se llama de forma diferente

Ejemplo quiero meter el nombre de la tabla en una variable para que genere esto, y en SourceData colocar la variable ¿Es esto posible?

ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Registro4", Version:=6).CreatePivotTable _
TableDestination:="Resultado!R3C1", TableName:="Tabla dinámica3", DefaultVersion:=6

Respuesta
1

En el ejemplo que pones el nombre de la tabla es este TableName:="Tabla dinámica3",

Cada que copias la tabla esta en automático cambia el nombre por ejemplo TableName:="Tabla dinámica4", TableName:="Tabla dinámica5", y así sucesivamente, no se que quiere hacer lo que si te puedo decir es que puedes cambiar el nombre usando variables, la instrucción que ocupas para cambiar el nombre de la tabla dinámica es esta.

ActiveSheet.PivotTables("Tabla dinámica1").Name = "hola"

No, me refiero a la tabla  de SourceData:="Registro" (Registro) es el nombre de mi formato original y ese formato lo copio a otra hoja pero el nombre de la tabla va cambiando de Registro1..2..3...etc. entonces quiero meter "Registro N" en una variable ya que voy a ha hacer precisamente una tabla dinámica con esa fuente

o asi ejemplo 

hoja_a = ActiveSheet.name
Final = Application.CountA(Worksheets(hoja_a).Range("A:A"))

ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="hoja_a !R3C1:R" & Final & "C16", Version:=6).CreatePivotTable _
TableDestination:="Resultado!R3C1", TableName:="Tabla dinámica3", DefaultVersion:=6

Al momento de poner la variable "hoja_a" en el SourseData  no funciona 

Esta macro hace lo siguiente tengo una tabla de origen llamada retro, la macro realiza una copia de dicha tabla la cual la pegara en la columna L y al momento de copiarla ira aumentado el consecutivo asi retro1, retro2, retro3 etc, entonces la macro identifica el valor y lo coloca en la variable N con la cual se le cambia el nombre a hola o bien puedes usar el valor de la N para usarlo en el sourcedata solo poniendo sourcedata:=N

sub copiar_y_renombrar
    Range("RETRO[#All]").Copy
    Range("L2").PasteSpecial
    N = Range("l2").ListObject.Name
    ActiveSheet.ListObjects(N).Name = "hola"
end sub

Corrí tu macro y le hice unas modificaciones, además de los cambios tuve que cambiarle la oarte que dice version y version default con lo que tu tienes como instrucción a mi no me funciona.

Sub td()
Hoja_a = ActiveSheet.Name
Final = Application.CountA(Worksheets(Hoja_a).Range("A:A"))
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Hoja_a & "!R3C1:R" & Final & "C2", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="resultado!R3C1", TableName:="Tabla dinámica3", _
DefaultVersion:=xlPivotTableVersion12
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas