Contenido
Para copiar una tabla dinámica a otra hoja utilizando VBA, primero debes asegurarte de crear un módulo nuevo en el editor de VBA y luego escribir el código necesario. A continuación se muestra un ejemplo de cómo puedes hacerlo:
Sub CopiarTablaDinamica()
Dim wsOrigen As Worksheet
Dim wsDestino As Worksheet
Dim rngTablaDinamica As Range
Dim pt As PivotTable
' Definir las hojas de origen y destino
Set wsOrigen = ThisWorkbook.Sheets("Hoja1") ' Cambia "Hoja1" al nombre de tu hoja de origen
Set wsDestino = ThisWorkbook.Sheets("Hoja2") ' Cambia "Hoja2" al nombre de tu hoja de destino
' Establecer la tabla dinámica, asume que es la primera en la hoja
On Error Resume Next
Set pt = wsOrigen.PivotTables(1)
On Error GoTo 0
If pt Is Nothing Then
MsgBox "No se encontró una tabla dinámica en la hoja de origen."
Exit Sub
End If
' Obtener el rango de la tabla dinámica
Set rngTablaDinamica = pt.TableRange2
' Copiar la tabla dinámica
rngTablaDinamica.Copy
' Pegar la tabla en la hoja de destino
wsDestino.Range("A1").PasteSpecial Paste:=xlPasteAll
' Desactiva la selección de las celdas copiadas
Application.CutCopyMode = False
MsgBox "Tabla dinámica copiada exitosamente."
End Sub
Pasos para usar el código:
- Abre Excel y presiona `ALT + F11` para abrir el Editor de VBA.
- Inserta un nuevo módulo: `Insertar > Módulo`.
- Copia el código anterior en el módulo recién creado.
- Asegúrate de cambiar los nombres de las hojas en el código a las que corresponden en tu libro (por ejemplo, «Hoja1» y «Hoja2»).
- Cierra el editor VBA y regresa a Excel.
- Ejecuta la macro desde `Vista > Macros > Ver Macros`, selecciona `CopiarTablaDinamica` y presiona `Ejecutar`.
Este código copiará la primera tabla dinámica encontrada en la hoja de origen y la pegará en la celda A1 de la hoja de destino. Puedes ajustar la celda de destino si lo deseas.