Ocultar filas en Excel según el valor/texto de una casilla

Tengo una hoja de Excel en donde estoy usando desde la columna A hasta la CP (esto puede aumentar a futuro) y las filas activas es hasta la 25000

En la Columna F, es donde voy a poner en texto que va identificar que fila debo ocultar (la 1ra fila activa es la 3)

Tengo una macro modelo pero no se como modificarla para este caso en particular:

Esto es lo que tengo

Sub ocultar()
    If Sheets("informacion").[A4] = "si" Then
        Columns("C:G").EntireColumn.Hidden = True
        Rows("6:10").EntireRow.Hidden = True
    Else
        Columns("C:G").EntireColumn.Hidden = False
        Rows("6:10").EntireRow.Hidden = False
    End If
End Sub
Respuesta
1

[Hola

¿Qué hay en las filas 1 y 2? ¿Qué palabra es la que definirá que las filas se ocultan?

Abraham Valencia

En las fila 1 y dos están los encabezados de las tablas y algunas observaciones. Y la palabra que definiría es: IDENTIFICADO

Se me ocurren dos formas de hacerlo:

- Usar filtros a través de macros, método que sería relativamente rápido pero habría que conocer bien tus filas 1 y 2 ya que si usas ambas con celdas combinadas (lo que siempre se recomienda no usar) y con encabezados y/u observaciones indistintamente, habría que ver/concoer al menos parte de tus datos (a través de algún "drive" por ejemplo) para no hacer propuestas que no necesariamente funcionen.

- Un bucle que recorra fila por fila y vaya ocultando las correspondiente. Método que probablemente requiera más tiempo/recursos que el anterior.

¿Opinión?

Abraham Valencia

Abraham muchas gracias por tu respuesta, me indicarías como puedo hacerte llegar un drive para mostrarte la planilla en cuestión

Aquí una muestra de la planilla

Creo que he podido aplicarla

Sub ocultar()
    If Sheets("FEMENINOS GENERALES").[F4] = "IDENTIFICADO" Then
        Rows("6:10").EntireRow.Hidden = True
    Else
        Columns("C:G").EntireColumn.Hidden = False
        Rows("6:10").EntireRow.Hidden = False
    End If
End Sub

El problema surge en que la columna F puede haber varios con la palabra identificado, por lo que no se como expresar el rango de filas a evaluar.

No necesito que se eliminen COLUMNAS, solo las filas que en la Columna F este el texto IDENTIFICADO.

Podrías ayudarme al respecto

[Hola

Prueba así:

Sub Probando()
Dim UltimaFila As Long
Dim Celda As Range
Let UltimaFila = Cells(Rows.Count, 6).End(xlUp).Row
For Each Celda In Sheets("informacion").Range("F3:F" & UltimaFila)
    If Celda.Value = "IDENTIFICADO" Then
        Celda.EntireRow.Hidden = True
    End If
Next Celda

Comentas

Abraham Valencia

Abraham buenos días, he probado tu sugerencia pero me sale un error de compilación, me fugura mensaje: se esperaba end sub

Ya lo resolví! Funciona tu sugerencia, ahora si quisiera que se volvieran a mostrar estas celdas que oculte como debería transformar el código

Pues para que aparezcan solo cambia el "True" por "False" y listo. Obviamente sin las comillas.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas