Inicio > Microsoft Excel > dtorrado > Ocultar filas mediante VBA en Excel

Ocultar filas mediante VBA en Excel

Experto:
Usuario:
Fecha: 02/06/2005
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
02/06/2005
chaffardet, usuario preguntando en Microsoft Excel
Usuario
Buenos dias, he leído muchas preguntas y sus respuestas me parecen muy buenas y en estos momentos necesito ayuda, he intentado por algunos medios que mediante un el valor de una celda se me oculte la fila que contiene esa celda.

La cuestión es la siguiente tengo una base de datos en excel con una facturación, en vista de que las facturas las pagan por partes, quiero que al terminar de pagar el costo de la factura la fila se oculte cuando el monto neto sea cero.

Por otro lado si es posible necesito que me cuente cuantas filas estan ocultas para tener una idea simplemente.

Muchas Gracias por su ayuda.
02/06/2005
chaffardet, experto respondiendo en Microsoft Excel
Experto
Hola,

Tendrías que hacer una macro que recorra todas esas celdas y analice el valor. Sería algo así:

Sub Ocultar()
Dim rg As Range
Set rg = Range("A2:A20")
For Each cell In rg
If cell.Text = "0" Then
cell.EntireRow.Hidden = True
End If
Next
End Sub

Y luego tendrás que decidir cuándo ejecutarlo. Si quieres ejecutarlo cada vez que se modifique algo en la hoja, harás una llamada a Ocultar en el evento Change de la hoja.

Para contar las filas ocultas sería una función muy similar, analizando la propiedad cell.Hidden, si es = True es que está oculta.

Saludos,
Dani
02/06/2005
chaffardet, usuario preguntando en Microsoft Excel
Usuario
Me dió una idea perfecta pero tu ve que modificarla ya que la celda por la cual se va a regir el parametro tiene formula y no hácía nada, concluyo que puede ser que haya un mínimo de decimales, lo que hice fue lo siguiente, primero que fuera < 1 y después como me ocultaba todo, tuve que hacer el mismo código pero para cuando las celdas estan vacias, ya me funciona perfecto, pero se que estoy ejecutando el trabajo 2 veces, crees que lo pueda simplificar a uno tomando en cuenta que su primera respuesta no me funcionaba. Muchas gracias de antemando, muy rápido y efectiva su respuesta.

'Codigo para ocultar filas
Dim rg As Range
Set rg = Range("K5:K1000")

Application.ScreenUpdating = False ' Congela la Pantalla

For Each cell In rg
If cell.Text < "1" Then
cell.EntireRow.Hidden = True
End If
Next

For Each cell In rg
If cell.Text = Empty Then
cell.EntireRow.Hidden = False
End If
Next

Application.ScreenUpdating = True '

'Fin código ocultar filas
02/06/2005
chaffardet, usuario preguntando en Microsoft Excel
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados