Ocultar una fila de una celda que contenga valor cero

¿Cómo hago con el editor de visual basic para que una determinada fila que tiene una determinada celda con valor cero me la oculta automáticamente?
Aclaro que no soy un experto en el uso del editor de visual basic para excel.

1 Respuesta

Respuesta
4
En la hoja en cuestión, ingresa el siguiente código (asumiendo que la celda con el valor cero la ingresas "a mano" y es la A1)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "A1" Then
 If Target = 0 Then
  Target.EntireRow.Height = 0
 End If
End If
End Sub
Hola Gfellay: Ante todo agradezco tu gentileza de responderme pero tu respuesta no me sirvió porque no fui lo suficientemente claro al hacerla. Pero primero que todo te aclaro que si bien manejo bastante bien el excel, mis conocimientos de Visual Basic son prácticamente nulos. Te aclararé para ver si me puedes ayudar.
El libro en cuestión tiene más o menos 20 hojas. Yo quiero efectuar dicho comando en varias hojas a la vez. El rango de celdas es siempre el mismo, y es en diferentes columnas ("B20:B15") Y ("D17:D21") y lo que yo quiero hacer es ocultar las filas de cualquiera de esas celdas cuando estas contengan el valor=0 y que las muestre cuando este valor es mayor que 0
Las celdas que yo quiero ocultar, tienen valor 0 pero este valor proviene de una fórmula de otra hoja diferente a las 20 ante dichas. Lo que yo no sé es si esto se puede hacer automáticamente con instrucciones de VB o me conviene confeccionar una Macro.
En el caso que se pueda hacer con el Visual basic. ¿Qué debo hacer? ¡¿Abrir el editor de VB y escribir las instrucciones o qué?
Si no puedes ayudarme iguelmente te estoy muy agradecido por tu gentileza.
Saludos. Horacio
Probá lo siguiente (en una hoja y cuando funcione bien lo copias a las otras).
En una de las hojas en cuestión, presioná botón derecho sobre la solapa del nombre de la hoja y seleccioná Ver código del menú desplegable.
Copiá el siguiente código
Private Sub WorkSheet_Calculate()
Dim r As Range
Application.EnableEvents = False
For Each r In Union(Range("B15:B20"), Range("D17:D21"))
 If r.Value = 0 Then
  r.EntireRow.Hidden = True
 Else
  r.EntireRow.Hidden = False
 End If
Next r
Application.EnableEvents = True
End Sub
Muchísimas gracias Gfellay, Tu respuesta me ha solucionado un gran problema, Quizás si me lo permitís más adelante cuando tenga tiempo de terminar esto, te haré otra consulta para mejorarlo, pero hasta ahora 10 Puntos
Muchas gracias nuevamente. Horacio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas