MACRO PARA OCULTAR FILAS

31/12/2003 - 03:06 por dorian+ | Informe spam
hola a todos !!

alguien me podría dar una mano con una planilla que utilizo para control de egresos e ingresos ?

\ en la primer hoja del libro hay un resumen de las cuentas\ cada fila se corresponde con una de ellas\ me gustaría que TODA la fila quedara oculta si en la columna importe el valor es cero y que solo se hiciera visible cuando tuviera un importe distinto de este valor (que lo toma automaticamente de las otras hojas del libro)\ desde ya les agradezco la ayuda que me puedan dar\ espero haber sido claro\ saludos\ dorian+

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
31/12/2003 - 11:54 | Informe spam
hola, dorian !

... resumen de las cuentas ... cada fila se corresponde con una de ellas
... que TODA la fila quedara oculta si en la columna importe el valor es cero
... visible cuando tuviera un importe distinto [...]



'suponiendo' que la primera celda con 'importes' fuera 'E5', copia las siguientes lineas
en el modulo de codigo de 'la hoja' ==Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
Dim Celda As Range
For Each Celda In Range(Range("e5"), Range("e65536").End(xlUp))
If Celda <> 0 Then Celda.EntireRow.Hidden = False Else Celda.EntireRow.Hidden = True
Next
End Sub

nota: si son 'demasiadas' celdas las que 'van ocasionando' ['una por una'] un 're-calculo' en la hoja...
podria ser 'necesario' establecer el modo de calculo [del libro] en 'manual' y usar {F9} para 're-calcular'

saludos,
hector.
Respuesta Responder a este mensaje
#2 dorian+
02/01/2004 - 07:46 | Informe spam
héctor:

disculpa que vuelva a molestarte con este tema\ concretamente el rango (no son celdas contiguas) es i12:i31 y i40:i126, traté de modificar el código que me pasaste, pero debo estar haciendo algo mal porque no logro hacerlo funcionar\ que modificación es la que debería hacer ?

muchas gracias y nuevamente disculpas (es que soy novato pero con ganas de aprender)
Respuesta Responder a este mensaje
#3 Héctor Miguel
02/01/2004 - 10:00 | Informe spam
hola, dorian !

... no son celdas contiguas, es i12:i31 y i40:i126. trate de modificar el codigo ... pero ... no logro hacerlo funcionar
... que modificacion es la que deberia hacer? ... con ganas de aprender



[como no mencionaste de que rango 'se trata' :(( ... trate de 'extenderlo' partiendo de un 'supuesto'] ;)
si conoces el rango 'especifico' de [TODAS] las celdas a 'monitorear' ... modifica la instruccion
de: =>For Each Celda In Range(Range("e5"), Range("e65536").End(xlUp))< a: =>For Each Celda In Range("i12,i31,i40,i126")<
otras [posibles] 'alternativas' serian [p.e.]

- si existiera un 'patron de salto' en el rango ['digamos'... cada 9 filas] =>'pero'... NO lo 'parece'<= :((
For Contador = 12 To Range("i65536").End(xlUp).Row Step = 9
If Range("i" & Contador) <> 0 _
Then Range("i" & Contador).EntireRow.Hidden = False _
Else Range("i" & Contador).EntireRow.Hidden = True
Next

- si existe algun 'identificador de totales/sumas/saldos' ['digamos'... en la columna 'A' la palabra 'TOTAL']
For Each Celda In Range(Range("i12"), Range("i65536").End(xlUp))
If Celda.Offset(, -8) = "TOTAL" Then
If Celda <> 0 Then Celda.EntireRow.Hidden = False Else Celda.EntireRow.Hidden = True
End If
Next

saludos,
hector.
Respuesta Responder a este mensaje
#4 dorian+
02/01/2004 - 16:01 | Informe spam
héctor, muchas gracias por tu pronta respuesta y tus ejemplos y ahora ... paciencia !!!

algo tengo que estar haciendo mal pues no logro que funcione a pesar de las modificaciones en el rango que le hice
como comentaba, la primer hoja del libro es un "resumen" de las otras hojas del libro, por lo que esta columna tiene fórmulas para tomar los valores (de acuerdo acuerdo a determinadas condiciones) de las otras hojas del libro y cuyos resultados, hasta que se completan los datos en estas hojas, son cero (o valores #N/A según el caso); no son celdas vacias
además algunos datos se encuentran agrupados y al ejecutar éste código lo único que consigo es que se expandan las celdas ocultas (que es algo que no quiero que suceda)
de antemano, te agradezco una vez mas la ayuda que me puedas dar, tu tiempo y paciencia
un saludo\ dorian+
Respuesta Responder a este mensaje
#5 Héctor Miguel
02/01/2004 - 20:02 | Informe spam
hola, dorian !

algo tengo que estar haciendo mal [...]
... esta columna tiene formulas ... cuyos resultados ... son cero (o valores #N/A segun el caso); no son celdas vacias
... algunos datos ... agrupados y ... lo unico que consigo es que se expandan las celdas ocultas (... no quiero que suceda)



YO 'lei mal' ['cambie' los dos puntos por comas] y te 'sugeria' 4 rangos de 1 celda => "i12,i31,i40,i126" <en lugar de 2 rangos de 'multiples' celdas [el dato que 'pusiste' en el 2° mensaje] => i12:i31 y i40:i126 <= :((
[y no 'sabia' que tienes rangos 'agrupados'] ... :(( ... 'te cambio' el codigo 'propuesto' por el siguiente:
en el modulo de codigo de 'la hoja' ==Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Dim Celda As Range, Temp As Variant
For Each Celda In Range("i12:i31,i40:i126")
Temp = Celda
If IsError(Temp) Then
' cambia la siguiente linea a *False* si NO quieres ocultar celdas *con error* '
Celda.EntireRow.Hidden = True
ElseIf Celda <> 0 Then
Celda.EntireRow.Hidden = False
Else: Celda.EntireRow.Hidden = True
End If
Next
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida