Contenido
Para extraer valores únicos de una tabla dinámica utilizando VBA en Excel, puedes seguir estos pasos. Este script se encargará de identificar y extraer valores únicos de un campo específico en una tabla dinámica. Aquí te dejo un ejemplo de cómo hacerlo:
Sub ExtractUniqueValuesFromPivot()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim uniqueValues As Collection
Dim i As Integer
Dim outputSheet As Worksheet
Dim outputRow As Integer
' Establece la hoja de trabajo y la tabla dinámica
Set ws = ThisWorkbook.Sheets("NombreDeTuHojaDeTrabajo")
Set pt = ws.PivotTables("NombreDeTuTablaDinamica")
' Establece el campo que deseas analizar
' Cambia "NombreDeTuCampo" al nombre del campo del que quieres extraer valores únicos
Set pf = pt.PivotFields("NombreDeTuCampo")
' Inicializa una nueva colección para almacenar valores únicos
Set uniqueValues = New Collection
' Itera a través de los elementos del campo de la tabla dinámica
On Error Resume Next
For Each pi In pf.PivotItems
' Solo agrega valores únicos a la colección
uniqueValues.Add pi.Name, CStr(pi.Name)
Next pi
On Error GoTo 0
' Crea una nueva hoja de trabajo para la salida si no existe
On Error Resume Next
Set outputSheet = ThisWorkbook.Sheets("ValoresUnicos")
If outputSheet Is Nothing Then
Set outputSheet = ThisWorkbook.Sheets.Add
outputSheet.Name = "ValoresUnicos"
End If
On Error GoTo 0
' Limpia cualquier dato existente en la hoja de destino
outputSheet.Cells.Clear
' Establece el inicio de la fila en la hoja de salida
outputRow = 1
' Agrega cada valor único a la hoja de salida
For i = 1 To uniqueValues.Count
outputSheet.Cells(outputRow, 1).Value = uniqueValues(i)
outputRow = outputRow + 1
Next i
MsgBox "Valores únicos extraídos exitosamente a la hoja 'ValoresUnicos'.", vbInformation
End Sub
Pasos a seguir:
- Asegúrate de que tu tabla dinámica y las hojas de trabajo tengan los nombres correctos y actualiza `»NombreDeTuHojaDeTrabajo»` y `»NombreDeTuTablaDinamica»` en el script con el nombre de tu hoja de trabajo y la tabla dinámica específica que estés utilizando.
- El campo específico del que deseas extraer los valores únicos debe ser reemplazado en `»NombreDeTuCampo»`.
- Si no existe una hoja llamada `»ValoresUnicos»`, el script creará una nueva hoja con ese nombre donde listará los valores únicos extraídos.
- Copia el código VBA en el Editor de VBA (puedes abrirlo con `Alt + F11`), insértalo en un nuevo módulo, y luego ejecuta el script.
Este script examina los elementos del campo de la tabla dinámica, agrega valores únicos a una colección y los exporta a una nueva hoja de cálculo o a la hoja existente.