ocultar filas en una hoja segun condicion ingresada en otra hoja

23/03/2009 - 14:53 por martinezpincheira | Informe spam
hola y gracias por leer esto, tengo la siguiente situacion que espero
que me ayuden a resolver:

necesito ocultar cierto numero de filas en una hoja de excel
dependiendo si en un casilla de otra hoja se ingresa el valor SI/NO
que lo elijo de una lista.

les agradeceria que me orientaran un poco con el codigo que debo usar
he estado adaptando algo que he encontrado en el foro pero siempre se
refiere a condiciones que estan en la misma hoja y no consigo lograr
lo que quiero.

muchas gracias
javier martinez

Preguntas similare

Leer las respuestas

#1 pepe
23/03/2009 - 19:24 | Informe spam
Tendría que funcionar si antepones a la dirección de la celda el nombre de
la hoja y el signo de admiración. algo así: Hoja2!A5
En cualquier caso cualquier usuario podrá mostrar lo que has ocultado
seleccionando un rango que incluya las filas ocultas y marcando la opción
mostrar.


escribió en el mensaje de noticias
news:
hola y gracias por leer esto, tengo la siguiente situacion que espero
que me ayuden a resolver:

necesito ocultar cierto numero de filas en una hoja de excel
dependiendo si en un casilla de otra hoja se ingresa el valor SI/NO
que lo elijo de una lista.

les agradeceria que me orientaran un poco con el codigo que debo usar
he estado adaptando algo que he encontrado en el foro pero siempre se
refiere a condiciones que estan en la misma hoja y no consigo lograr
lo que quiero.

muchas gracias
javier martinez
Respuesta Responder a este mensaje
#2 Héctor Miguel
23/03/2009 - 23:03 | Informe spam
hola, !

serviria si expones algunos detalles mas concretos (para poder (re)crear un modelo de trabajo "igual al tuyo" ?)
o sea, explica los "indeterminados" ("...cierto numero de filas...", "...una casilla de otra hoja...", etc.)
y si comentas tambien lo que ya has intentado adaptar (el original y el adaptado) de lo que encontraste en el foro

saludos,
hector.

__ OP __
necesito ocultar cierto numero de filas en una hoja de excel
dependiendo si en un casilla de otra hoja se ingresa el valor SI/NO que lo elijo de una lista.
les agradeceria que me orientaran un poco con el codigo que debo usar
he estado adaptando algo que he encontrado en el foro
pero siempre se refiere a condiciones que estan en la misma hoja y no consigo lograr lo que quiero.
Respuesta Responder a este mensaje
#3 martinezpincheira
24/03/2009 - 00:35 | Informe spam
On 23 mar, 18:03, "Héctor Miguel"
wrote:
hola, !

serviria si expones algunos detalles mas concretos (para poder (re)crear un modelo de trabajo "igual al tuyo" ?)
o sea, explica los "indeterminados" ("...cierto numero de filas...", "...una casilla de otra hoja...", etc.)
y si comentas tambien lo que ya has intentado adaptar (el original y el adaptado) de lo que encontraste en el foro

saludos,
hector.

__ OP __

> necesito ocultar cierto numero de filas en una hoja de excel
> dependiendo si en un casilla de otra hoja se ingresa el valor SI/NO que lo elijo de una lista.
> les agradeceria que me orientaran un poco con el codigo que debo usar
> he estado adaptando algo que he encontrado en el foro
> pero siempre se refiere a condiciones que estan en la misma hoja y no consigo lograr lo que quiero.



gracias por contestar

las filas a ocultar de la hoja2 son en este caso de la a278 a la a313
y deben ser ocultadas si en la hoja1 se pone "No" en la casilla ai277
y deben ser visibles si el valor de esa casilla es si. los ejemplos
que habia adaptado ya no los tengo porque el archivo se daño y ahora
que empece de nuevo probe con algo que encontre en el foro pero la
celda que lleva la condicion esta en la misma hoj adonde se ocultan
las hojas y seria mas practico que fuera en la otra hoja pero por el
momento funciona, el codigo que uso es este:

Private Sub Worksheet_Change(ByVal Target As Range)

Ocultar_Por_Condicion "ai277", "No", "a278:a313"

End Sub
Sub Ocultar_Por_Condicion(ByVal Ref_Condicion As String, _
ByVal Condicion As Variant, _
ByVal Refs_Ocultar As String)
Range(Refs_Ocultar).EntireRow.Hidden = Range(Ref_Condicion) Condicion
End Sub

y tengo esta otra situacion: en caso de ser "No" el valor de la
condicion ai277 el valor de la celda j299 debe ser 100 y en caso
contrario debe ser "=REDONDEAR(100-(((F297/(F294*1000))*hoja1!I127)
*100);2)" y para esto uso el siguiente codigo:

Sub cambia_valor_perdidas()
Dim celda_condicion As Range
Dim celda_destino As Range

Set celda_destino = Range("j299")
Set celda_condicion = Range("ai277")

If celda_condicion.Value = "No" Then
celda_destino.Value = "100" Else_
celda_destino.Value = "=REDONDEAR(100-(((F297/(F294*1000))*Link!
I127)*100);2)"

End If
End Sub

en el caso "No" pero se queda pegado unos 15 segundosy ademas no me
funciona el Else y si lo pongo en un if separado

Sub cambia_valor_perdidas_si()
Dim celda_condicion As Range
Dim celda_destino As Range

Set celda_destino = Range("j299")
Set celda_condicion = Range("ai277")

If celda_condicion.Value = "Si" Then

celda_destino.Value = "=REDONDEAR(100-(((F297/(F294*1000))*Link!
I127)*100);2)"
End If
End Sub

me da un error en celda_destino.Value = "=REDONDEAR(100-(((F297/
(F294*1000))*Link!I127)*100);2)"

les agradezco que me ayuden a subsanar mis errores
Respuesta Responder a este mensaje
#4 Héctor Miguel
24/03/2009 - 03:51 | Informe spam
hola, !

1) prueba con este codigo en el modulo de la "hoja1":

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("ai277")) Is Nothing Then Exit Sub
Worksheets("hoja1").Range("a278:a313").EntireRow.Hidden = LCase(Range("ai277")) = "no"
End Sub

2) esta parte no es lo suficiente clara (p.e.)

a) en cual hoja esta la celda "J299" ???

b) no te saldria mas barato usar una formula directamente en esa celda en lugar del codigo ?
(p.e.) =si(hoja1!ai277="no";100;redondear(100-(((f297/(f294*1000))*link!i127)*100);2))

c) ademas, si quieres depositar una formula por codigo...
lo "normal" es la propiedad: <rango>.Formula = "=aqui la formula EN INGLES y coma como separador"
o si conoces (exactamente) la configuracion regional del equipo donde se correra tu codigo...
puedes usar la propiedad: -> <rango>.FormulaLocal = "=aqui la formula el idioma instalado y ""su"" separador"

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ 1 __
las filas a ocultar de la hoja2 son en este caso de la a278 a la a313... si en la hoja1 se pone "No" en la casilla ai277



__ 2 __
y tengo esta otra situacion: en caso de ser "No" el valor de la condicion ai277 el valor de la celda j299 debe ser 100
y en caso contrario debe ser "=REDONDEAR(100-(((F297/(F294*1000))*hoja1!I127)*100);2)" y para esto uso el siguiente codigo:

Sub cambia_valor_perdidas()
Dim celda_condicion As Range
Dim celda_destino As Range
Set celda_destino = Range("j299")
Set celda_condicion = Range("ai277")
If celda_condicion.Value = "No" Then
celda_destino.Value = "100" Else_
celda_destino.Value = "=REDONDEAR(100-(((F297/(F294*1000))*Link!I127)*100);2)"
End If
End Sub
Respuesta Responder a este mensaje
#5 martinezpincheira
24/03/2009 - 16:12 | Informe spam
On 23 mar, 22:51, "Héctor Miguel"
wrote:
hola, !

1) prueba con este codigo en el modulo de la "hoja1":

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("ai277")) Is Nothing Then Exit Sub
  Worksheets("hoja1").Range("a278:a313").EntireRow.Hidden = LCase(Range("ai277")) = "no"
End Sub

2) esta parte no es lo suficiente clara (p.e.)

    a) en cual hoja esta la celda "J299" ???

    b) no te saldria mas barato usar una formula directamente en esa celda en lugar del codigo ?
        (p.e.) =si(hoja1!ai277="no";100;redondear(100-(((f297/(f294*1000))*link!i127)*100);2))

    c) ademas, si quieres depositar una formula por codigo...
        lo "normal" es la propiedad: <rango>.Formula = "=aqui la formula EN INGLES y coma como separador"
        o si conoces (exactamente) la configuracion regional del equipo donde se correra tu codigo...
        puedes usar la propiedad: -> <rango>.FormulaLocal = "=aqui la formula el idioma instalado y ""su"" separador"

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ 1 __

> las filas a ocultar de la hoja2 son en este caso de la a278 a la a313... si en la hoja1 se pone "No" en la casilla ai277

__ 2 __

> y tengo esta otra situacion: en caso de ser "No" el valor de la condicion ai277 el valor de la celda j299 debe ser 100
> y en caso contrario debe ser "=REDONDEAR(100-(((F297/(F294*1000))*hoja1!I127)*100);2)" y para esto uso el siguiente codigo:

> Sub cambia_valor_perdidas()
> Dim celda_condicion As Range
> Dim celda_destino As Range
> Set celda_destino = Range("j299")
> Set celda_condicion = Range("ai277")
> If celda_condicion.Value = "No" Then
>    celda_destino.Value = "100" Else_
>    celda_destino.Value = "=REDONDEAR(100-(((F297/(F294*1000))*Link!I127)*100);2)"
> End If
> End Sub



Impecable!!!

muchas gracias, sobre todo por hacerme ver que era mucho mas facil
poner la formula en la celda, ya tenia la mente cerrada buscando
solucionar el otro tema.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida