Inicio > Microsoft Excel > fejoal > Ocultar filas con resultado "cero"

Ocultar filas con resultado "cero"

Experto:
Usuario:
Fecha: 19/11/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
19/11/2008
lhurtado, usuario preguntando en Microsoft Excel
Usuario
Hola Fernando

Mi duda radica en lo siguiente:
Tengo un rango con resultados y subtotales y deseo que excel me evalue los resultados y me oculte las filas cuyos resultados sean "cero" pero que no oculte los subtotales en caso de que sean "cero"

p.e.

A B C
1 + 2 = 3
1 * 0 = 0 <-- ocultar esta fila
2 - 1 = 1
subtotal1 4
1 + 2 = 3
1 * 0 = 0 <-- ocultar esta fila
1 - 4 = -3
subtotal2 0 <-- no ocultar
Total 4 <-- si es cero no ocultar
19/11/2008
lhurtado, experto respondiendo en Microsoft Excel
Experto

Buenas, Sr. Hurtado!

En este caso, será necesario utilizar una macro.

Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "´Modulo") y pega el siguiente código:

Sub OcultaLin()
'Oculta líneas segun el siguiente caracter:
CharKey = 0

Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value = CharKey Then
ActiveCell.EntireRow.Hidden = True
Else
ActiveCell.EntireRow.Hidden = False
End If
ActiveCell.Offset(1).Select
Loop
End Sub

Cierra el editor y graba el archivo.

Para que funcione selecciona la primer celda de la columna donde están los ceros y ejecuta la macro que acabas de pegar (OcultaLin)

Como verás, reemplazando la variable CharKey por otra puedes lograr que se oculten las líneas, de acuerdo a ese nuevo caracter o número.

Tratándose de fórmulas, la macro controla si el nuevo resultado es distinto de cero y, eventualmente, mostraría celdas que hubiesen sido oculatadas en algún procedimiento anterior...

Esto debería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices.
Si no, pregúntame de nuevo.

Un abrazo!
Fernando

19/11/2008
lhurtado, usuario preguntando en Microsoft Excel
Usuario
Hola Fernando

Efectivamente el procedimiento funciona, yo utilizaba algo similar simplemente que lo hacia con Worksheet_Calculate, con un rango del tipo DESREF.

La verdadera inquietud es como hacer para que oculte los resultados que poseen "cero" (tu procedimiento funciona muy bien) pero que tambien tenga en cuenta que los subtotales y totales no los oculte en el caso de que sean "cero".

Muchas gracias y disculpa tanta molestias.

Luis Fernando
19/11/2008
lhurtado, experto respondiendo en Microsoft Excel
Experto

Hola, Luis!

OK, agregué un condicional más que evaluará el caso de que el valor cero surja de una función SUBTOTALES.
Prueba con esta versión modificada:

Sub OcultaLin()
'Oculta líneas segun el siguiente caracter:
CharKey = 0

Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value = CharKey Then
If InStr(1, ActiveCell.Formula, "SUBTOT") = 0 Then ActiveCell.EntireRow.Hidden = True
Else
ActiveCell.EntireRow.Hidden = False
End If
ActiveCell.Offset(1).Select
Loop
End Sub

Espero que cubra tus expectativas.

Un abrazo!
Fernando
19/11/2008
lhurtado, usuario preguntando en Microsoft Excel
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados