Contenido
Para cambiar la fuente de datos de una tabla dinámica utilizando VBA en Excel, puedes seguir estos pasos. Asegúrate de que la tabla dinámica ya esté creada y que tengas identificados tanto el nombre de la tabla dinámica como el rango del nuevo origen de datos. Aquí tienes un ejemplo del código VBA que puedes usar para cambiar la fuente de datos:
Sub CambiarFuenteDatosTablaDinamica()
Dim ws As Worksheet
Dim pt As PivotTable
Dim nuevoRango As Range
Dim nombreTablaDinamica As String
Dim nombreHoja As String
' Especifica el nombre de la hoja donde está la tabla dinámica
nombreHoja = "Hoja1"
' Especifica el nombre de la tabla dinámica
nombreTablaDinamica = "TablaDinamica1"
' Especifica el nuevo rango de datos
' Asegúrate de definir correctamente el rango, puedes usar la función Range
' Por ejemplo, si el nuevo rango está en la misma hoja:
Set nuevoRango = Worksheets(nombreHoja).Range("A1:D100")
' Establece el objeto de hoja de trabajo
Set ws = ThisWorkbook.Worksheets(nombreHoja)
' Buscar la tabla dinámica
Set pt = ws.PivotTables(nombreTablaDinamica)
' Cambiar la fuente de datos de la tabla dinámica
pt.ChangePivotCache ThisWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=nuevoRango.Address(ReferenceStyle:=xlR1C1, External:=True))
' Actualizar la tabla dinámica
pt.RefreshTable
MsgBox "La fuente de datos de la tabla dinámica ha sido actualizada exitosamente."
End Sub
Paso a paso del código:
- Definir Variables: Define las variables para la hoja de trabajo, la tabla dinámica, el nuevo rango de datos, y los nombres correspondientes.
- Especificar Detalles: Cambia `nombreHoja`, `nombreTablaDinamica`, y el rango de `nuevoRango` según tus necesidades.
- Encontrar la Tabla Dinámica: Localiza la tabla dinámica en cuestión usando `ws.PivotTables(nombreTablaDinamica)`.
- Cambiar Origen de Datos: Cambia el origen de datos de la tabla dinámica utilizando `ChangePivotCache`.
- Actualizar la Tabla Dinámica: Refresca la tabla dinámica para reflejar los cambios aplicados en el origen de datos.
Puedes adaptar este código según la estructura de tu libro de Excel y asegurarte de que todo está correctamente identificado. Asegúrate de que las celdas especificadas en `nuevoRango` cubran toda el área de tu nuevo origen de datos.