ocultar fila con condicional

27/07/2007 - 03:06 por Rew | Informe spam
Necesito ocultar las filas de una hoja, sujetas a la siguiente condicion,
por ejemplo si en la fila 4 la celda AB4 >0, se oculta si no se muestra y asi
las demas filas; fila 30, AB30>0, se oculta, si no se muestra.-
Desde ya muy agradedecido

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
27/07/2007 - 21:10 | Informe spam
hola, Richard !

Algo debo estar haciendo mal con tu formula, con esta formula funciona solo para una linea
Private Sub Worksheet_Change(ByVal Target As Range)
With Rows(20)
If Range("C15") = 0 Then _
.Hidden = True Else _
.Hidden = False
End With
End Sub
Sobre esta base, que es lo que debo cambiar, para que me lo haga en todas las filas de una hoja de trabajo.-



[primero]: definir si vas a necesitar que el codigo de des/ocultamiento de filas se auto-ejecute con el evento '_change'
- que es el que se dispara cuando se hacen cambios en celda/s de esa hoja
[OJO: NO es el mismo que cuando sus valores se actualizan por efectos de formulas en algun re/calculo del modelo]

[segundo]: definir si *efectivamente* pretendes aplicarlo a TODAS las filas de una hoja [65000 97/2003 un millon xl-2007] -???-

[tercero]: considerar que es necesario des/re/ocultar las filas *caminando* celda-por-celda de la columna que *decide* <= OJO

comentas [si hubiera] algun detalle *en el tintero* ?
saludos,
hector.
Respuesta Responder a este mensaje
#7 Rew
28/07/2007 - 06:24 | Informe spam
Hola Hector,

1º agradecer tu disposición.-

Disculpa mi desconocimiento pero recien empiezo en macro y estoy muy
ilusionado pero mucho más es lo perdido que estoy.-

1- Necesitaría, disculpa mi insistencia, que me escribas como ejemplo la
fórmula completa, para que en una hoja de trabajo, la fila 4 se oculte con la
celda c4>0, la fila 5 con c5>0 ycomo ejemplo seguir asi hasta la fila 10 con
C10 (eso es constante),para poderla copiar, desde ahi me animno a
desentrañarla y modificarla.-

2- Otro problema que tengo es que las celdas C (4,5,6,7...)no son en
realidad 0 sino estan copiadas de otra hoja con la sig fórmula "=+Master!F10"
(master es la hoja 3) y me toma ocultar y luego no mostrar, si aplico el nº
es decir 0 y 1 como ejemplo, funciona perfecto con la fórmula que te pase,
tomadas cito la fuente de un diálogo entre Joan e Ivan de esta comunidad

El punto 2 me gustaría buscarle la solucion solo, de no llegar a buen puerto
te pediría auxilio, pero si me das la pista del 1er punto puedo empezar a
buscar como hacer todo el desarrollo.-

Un fuerte abrazo

Richard
Respuesta Responder a este mensaje
#8 Héctor Miguel
28/07/2007 - 09:11 | Informe spam
hola, Richard !

Disculpa mi desconocimiento pero recien empiezo en macro y estoy muy ilusionado pero mucho mas es lo perdido que estoy.-



=> [hasta donde se]... no se piden disculpas en los grupos por no saber
el que no pregunta [de alguna manera]... tampoco aprende [de ninguna] ;)

1- Necesitaria... como ejemplo la formula completa, para que en una hoja de trabajo
la fila 4 se oculte con la celda c4>0, la fila 5 con c5>0 y como ejemplo seguir asi hasta la fila 10 con C10
(eso es constante), para poderla copiar, desde ahi me animno a desentra#arla y modificarla.-

2- Otro problema que tengo es que las celdas C (4,5,6,7...) no son en realidad 0 sino estan copiadas de otra hoja
con la sig formula "=+Master!F10" (master es la hoja 3) y me toma ocultar y luego no mostrar
si aplico el nº es decir 0 y 1 como ejemplo, funciona perfecto con la formula que te pase
tomadas cito la fuente de un dialogo entre Joan e Ivan de esta comunidad

El punto 2 me gustaria buscarle la solucion solo, de no llegar a buen puerto te pediria auxilio
pero si me das la pista del 1er punto puedo empezar a buscar como hacer todo el desarrollo.-



conociendo que en la columna 'C' [o la que sea en realidad] tienes formulas que toman su vinculo de otra hoja
te sugiero usar el evento '_calculate' en el modulo de codigo de *esa* hoja
-> click-secundario sobre la etiqueta con su nombre... -> selecciona del menu contextual: -> ver codigo
esto te lleva al editor de vba y [precisamente] al modulo de codigo de esa hoja

basado en la propuesta primera [y los comentarios de la anterior], copia/pega las siguientes lineas en ese modulo:

Private Sub Worksheet_Calculate()
Dim Celda As Range
For Each Celda In Range(Range("c4"), Range("c4").End(xlDown))
Celda.EntireRow.Hidden = Celda > 0
Next
End Sub

si en la columna 'C' existen celdas *vacias* antes de llegar a la ultima celda *realmente* ocupada...
cambia la instruccion For Each a...
For Each Celda In Range(Range("c4"), Range("c65536").End(xlUp))

cierra el editor, regresa a excel, y prueba haciendo modificaciones a la hoja que genera cambios originalmente [Master]

OJO: no te olvides que estaras *perdiendo* la posibilidad del des-hacer, undo, ctrl+Z :-((

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#9 Rew
28/07/2007 - 15:00 | Informe spam
Hola Hector,

Gracias otra vez, trabajo con ello y te comento.-

Un Abrazo

Richard
Respuesta Responder a este mensaje
#10 Rew
28/07/2007 - 16:10 | Informe spam
Hola Miguel

Al hacerlo se generar un conflicto, comienza a hacer la gestión, inclusive
oculto alguna gila en algun caso, pero el programa pasa a no responder, con
ambas fórmulas, parpadea la pantalla y lo cerre desde el administrador.-

si yo quisiera hacerlo para las filas 5 con C5, 6 con C6,.., hasta la 10
con C10

que debería modificar


Private Sub Worksheet_Calculate()
Dim Celda As Range
For Each Celda In Range(Range("c5"), Range("c5").End(xlDown))
Celda.EntireRow.Hidden = Celda > 0
Next
End Sub

si en la columna 'C' existen celdas *vacias* antes de llegar a la ultima
celda *realmente* ocupada...

OTRA EN REALIDAD SE ALTERNAN ES DECIR PUEDE HABER 3 VACIAS FILA 5 A 8, 2
COMPLETAS 9 A 12 Y ASI, TODAS ELLAS CON LA FORMULA =+MASTER!C5 en C5,
=+MASTER!C6 en C6...


Private Sub Worksheet_Calculate()
Dim Celda As Range
For Each Celda In Range(Range("c5"), Range("c5").End(xlDown))
Celda.EntireRow.Hidden = Celda > 0
Next
End Sub

No quisiera llegar a la última fila de la hoja, si no acotarlo hasta la fila
20 o 100, que debría cambiar.-

Gracias, otra vez, un abrazo
Richard
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida