Skip to main content

¿Cómo ocultar columnas en tiempo real según la entrada del usuario en Excel?

Author: Xiaoyang Last Modified: 2025-06-04

Ocultar columnas en Excel puede ser una tarea común, pero ¿alguna vez has intentado ocultar columnas automáticamente basándote en valores de entrada específicos? Por ejemplo, cuando escribo el texto “AA” en una celda, se oculta la columna A; cuando escribo “BB”, se ocultan las columnas B y C; al escribir “CC”, se ocultan las columnas D y E; al escribir “DD”, se oculta la columna F, como se muestra en la demostración a continuación. Este artículo proporcionará un código VBA para resolverlo en Excel.

Usa código VBA para ocultar o mostrar columnas en tiempo real según la entrada del usuario

Usa código VBA para ocultar o mostrar ciertas columnas basadas en la entrada del usuario


Usa código VBA para ocultar o mostrar columnas en tiempo real según la entrada del usuario

Para ocultar columnas específicas en tiempo real basadas en los valores de entrada, por favor aplica el siguiente código VBA:

1. En la hoja de cálculo donde deseas ocultar columnas, haz clic derecho en la pestaña de la hoja y luego haz clic en "Ver código" en el menú contextual, ver captura de pantalla.

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. En la ventana abierta de "Microsoft Visual Basic para Aplicaciones", copia y pega el siguiente código VBA en la ventana "Hoja (Código)".

Código VBA: Ocultar columnas en tiempo real basado en la entrada del usuario

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Nota: En el código anterior, "K1" es la celda donde introduces el texto específico. Deberías ajustar el texto y los nombres de las columnas para adaptarlos a tus necesidades. Además, puedes agregar otros criterios nuevos simplemente añadiendo los siguientes scripts:
  • Case "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = True

A screenshot of the VBA code window in Excel with code pasted to hide columns based on user input

3. Luego, cierra la ventana del código. Ahora, al ingresar “AA” en la celda K1 y presionar la tecla "Enter", la columna A se oculta; al ingresar “BB” y presionar la tecla "Enter", las columnas B y C se ocultan, y así sucesivamente. Si introduces cualquier otro valor o eliminas el contenido, las columnas ocultas se mostrarán de inmediato, ver la siguiente demostración:


Usa código VBA para ocultar o mostrar ciertas columnas basadas en la entrada del usuario

En este ejemplo, filtraré un rango de datos basado en el nombre de un producto ingresado. Cuando escriba “Hoodie”, solo se mostrará la información de Hoodie y las demás columnas se ocultarán de inmediato; y cuando escriba “All”, todas las columnas se mostrarán como se ve en la siguiente demostración:

1. En la hoja de cálculo donde deseas ocultar columnas, haz clic derecho en la pestaña de la hoja y luego haz clic en "Ver código" en el menú contextual, ver captura de pantalla:

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. En la ventana abierta de "Microsoft Visual Basic para Aplicaciones", copia y pega el siguiente código VBA en la ventana "Hoja (Código)".

Código VBA: Ocultar o mostrar columnas para filtrar datos basados en la entrada del usuario

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Nota: En el código anterior, "K1" es la celda donde introduces el texto específico, "B1:H1" son los encabezados de fila que contienen los nombres de los productos que deseas filtrar.

3. Luego, cierra la ventana del código. Ahora, si introduces el nombre del producto en la celda K1, solo se mostrarán las columnas correspondientes, las demás se ocultarán; y si introduces el texto “All”, todas las columnas aparecerán como se muestra en la siguiente demostración:

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...


Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!