¿Cómo ocultar o mostrar elementos específicos de un campo usando VBA?

Para ocultar o mostrar elementos específicos de un campo en Excel utilizando VBA, generalmente te refieres a una tabla dinámica (pivot table). Supongamos que tienes una tabla dinámica en tu hoja de Excel y deseas ocultar o mostrar elementos específicos basados en ciertas condiciones. Aquí te dejo un ejemplo básico de cómo puedes hacerlo:

  • Abre tu archivo de Excel y asegúrate de que la tabla dinámica está configurada correctamente.
  • Accede al Editor de VBA presionando `Alt` + `F11`.
  • Inserta un nuevo módulo y escribe el siguiente código o adáptalo a tus necesidades.

Supongamos que deseas ocultar y mostrar elementos en un campo llamado «Categoría»:

Sub OcultarMostrarElementos()
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    Dim ws As Worksheet
    
    ' Establece la hoja de trabajo y la tabla dinámica
    Set ws = ThisWorkbook.Sheets("Hoja1") ' Cambia "Hoja1" por el nombre de la hoja que contiene la tabla dinámica
    Set pt = ws.PivotTables("TablaDinámica1") ' Cambia "TablaDinámica1" por el nombre de tu tabla dinámica

    ' Establece el campo que deseas modificar
    Set pf = pt.PivotFields("Categoría") ' Cambia "Categoría" por el nombre del campo adecuado

    ' Recorre cada elemento en el campo y ejecuta la lógica para mostrar/ocultar
    For Each pi In pf.PivotItems
        ' Ejemplo: Ocultar todos los elementos que no sean "Electronica"
        If pi.Name = "Electronica" Then
            pi.Visible = True
        Else
            pi.Visible = False
        End If
    Next pi
End Sub

Explicación del código:

  • ws: Representa la hoja que contiene la tabla dinámica.
  • pt: Almacena la referencia a la tabla dinámica.
  • pf: Almacena la referencia al campo específico que estamos manipulando.
  • pi: Cada elemento individual dentro del campo.

Pasos a seguir:

  • Cambia `»Hoja1″` por el nombre de la hoja de tu libro que contiene tu tabla dinámica.
  • Cambia `»TablaDinámica1″` por el nombre de tu tabla dinámica.
  • Cambia `»Categoría»` por el nombre del campo cuyos elementos deseas manejar.
  • Ajusta la condición (`If pi.Name = «Electronica» Then`) según tus necesidades.

Puedes personalizar este código según tus requisitos específicos, adaptando nombres de hojas, tablas dinámicas, campos y elementos.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario