Excel - ocultar filas que cumplan condicion " con macro"

 
Vista:

ocultar filas que cumplan condicion " con macro"

Publicado por raul (4 intervenciones) el 22/07/2009 19:50:58
saludos..

tengo una tabla con datos, en la columnba b hay un dato que puede ser "si" o "no"
lo que deseo es mediante una macro se oculten de manera automatica las filas que tengan el dato "no" en la columna b.. este dato esta cambiando constantemente mediante una formula condicional, es por ello que necesito que cada vez que aparezca un no el la columna b esa fila se oculte en automatico..
lo he intentado con algunos ejemplos que encontre en algunos foros, pero no he logrado adaptarlo ya que tengo poco conocimiento en vb..

gracias de antemano...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ocultar filas que cumplan condicion

Publicado por lucho (60 intervenciones) el 22/07/2009 21:15:27
Saludos Raú:
Aquí te paso un tip:
Public Sub MostraryOcultarCeldas()
If Range("b1:b9").EntireRow.Hidden = True Then
Range("b1:b9").EntireRow.Hidden = False
Else
Range("b1:b9").EntireRow.Hidden = True
End If

End Sub
Nota: Nada más oculta todas las celdas, hasta este momentos no encuentro la forma en donde coloco el texto " No"
Espero te sirva de algo, mientras siguimos investigando.
Un favor encuanto lo resuelvas o alguien nos pueda apoyar, me gustaría que me lo hicieras saber.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por ricardo (2 intervenciones) el 15/12/2009 13:08:36
hola chaveles yo lo he hecho muy facil, y me resulta, espero que a vosotros tambien.

copiar este codigo.:

Sub ocultarfilas()
'
'
'

For Each celda In Range("b5:b10")
If celda.Value <= 0 Then
ActiveCell.EntireRow.Hidden = True
Else
ActiveCell.EntireRow.Hidden = False
End If
ActiveCell.Offset(1).Select
Next

End Sub

un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Arley (1 intervención) el 01/09/2013 03:20:16
Hola Ricardo,

Excelente este ejemplo funciona sin problemas

Saludo a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Hernan Alvarado (1 intervención) el 12/06/2014 16:56:06
Práctico, sensillo y útil
gracias por tu colaboración
Hernan Alvarado
La Paz Bolivia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

RE:ocultar filas que cumplan condicion

Publicado por Luis (6 intervenciones) el 05/12/2014 16:50:42
Sr. ricardo, a pesar de que ha pasado el tiempo, funciona a la perfección.

Saludos desde México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Marco A. (1 intervención) el 27/01/2016 20:15:38
Me puedes ayudar con tu ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por mario pinilla (1 intervención) el 15/06/2016 20:26:35
Cordial saludo, deseo saber si una vez cumplida una condicion puedo hacer aparecer un par de celdas para ser utilizadas, esto quiero hacerlo atravez de una formula, Macros NO, es posible ?? Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ocultar filas que cumplan condicion

Publicado por jcs (494 intervenciones) el 23/07/2009 09:27:10
Muy buenas

A ver si algo así te vale:

Private Sub ocultar_mostrar()
inicio = Range("b1").End(xlDown).Row
For i = inicio To 65000
If Cells(i, 2) = "no" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
ElseIf Cells(i, 2) = "si" Then
Rows(i).Select
Selection.EntireRow.Hidden = False
Else
Exit For
End If
Next
End Sub

Si tienes muchas filas con datos, la macro puede ser lenta, ya que tiene que pasar una a una por todas ellas. No obstante, si uno de los datos (si o no) es mayoritario, se podría acelerar mucho la ejecución, dímelo.

Espero que sea lo que quieres.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por frany (58 intervenciones) el 23/07/2009 21:18:37
No se si me he perdido, pero creo que lo importante es tambien sea automatico verdad?
Habria que adaptar quizas el codigo de Juanjo para que funcionase con los eventos, es decir si una celda cambiase su valor a no, se activase un evento para que se ejecute la macro del tipo
Worksheet_SelectionChange(ByVal Target As Range) o Worksheet_Change(ByVal Target As Range).
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por frany (58 intervenciones) el 23/07/2009 21:24:14
Con permiso de Juanjo
Tan solo añadiendo en thisworkbook el evento siguiente podria valer

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ocultar_mostrar
End Sub

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ocultar filas que cumplan condicion

Publicado por jcs (494 intervenciones) el 24/07/2009 09:19:45
Pues ya ves, Frany, no te doy permiso. ¿Sabes por qué? … Pues porque no lo necesitas. Además me parece correcta tu aportación y perfectamente aplicable a la cuestión que plantea Raúl, al evitar tener que ejecutar manualmente una macro, cuando se puede efectuar automáticamente.

El problema que le veo es que, ante cualquier cambio de un dato se va a lanzar la macro, y es posible que haya datos que no influyan en los resultados de la columna B, con lo que aquella se ejecutaría de forma innecesaria, ralentizando sustancialmente el proceso.

Una solución intermedia sería que se identificaran los distintos “target” de los que dependan las fórmulas de la columna B. Por ejemplo, si las fórmulas que tiene para la columna B dependen de la celda C1 y de la columna F, podría quedar algo así como:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Or Target.Column = 6 Then
inicio = Range("b1").End(xlDown).Row
For i = inicio To 65000
If Cells(i, 2) = "no" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
ElseIf Cells(i, 2) = "si" Then
Rows(i).Select
Selection.EntireRow.Hidden = False
Else
Exit For
End If
Next
End If
End Sub

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por frany (58 intervenciones) el 24/07/2009 15:12:35
Al empezar a leer, pensé que estabas enfadado :-(
Menos mal que no es asi :-)
Es bueno esto de los foros porque siempre aprendo cosas nuevas, asi es como debe ser la filosofia de la gente en los foros, bueno y fuera de ellos jajaja.

Muchas gracias Juanjo
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por silvia (1 intervención) el 17/11/2009 23:48:34
hola
estoy interesada en este tema de ocultar filas automáticamente, o hacerlas aparecer según la condición, para empezar, no se casi nada sobre macros, cada vez que necesio algo, lo busco en la web y la bajo segun las indicaciones,
ahora estoy necesitanto una macro que oculte filas cuando en una celda determinada (az 28), me indique "si", en esta celda hay una formula condicional, y me puede arrojar si, o no.

Encontré esta macro, y la he pegado en el codigo que aparece en la etiqueta de la hoja,
Private Sub Worksheet_Activate()
Worksheet_Change ([az28])
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If [az28] = "si" Then
[a28:a32].EntireRow.Hidden = True
Else
[a28:a32].EntireRow.Hidden = False
End If
End Sub

y funciona muy bien, pero siempre y cuando yo escriba manualmente Si en az28,
como indiqué líneas arriba, en esta celda, tengo una formula con una condición.
por favor, me podrán ayudar?
gracias anticipadas a quien lo pueda hacer
Saludos,
Silvia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por edisson (1 intervención) el 09/03/2018 20:23:54
Mira esto me sirvió para arreglarlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Const c_strNameOfMonitored As String = "O18"
 
    Dim rngIntersect    As Excel.Range, _
        rngMonitored    As Excel.Range
 
    Set rngMonitored = Me.Range(c_strNameOfMonitored)
 
    On Error Resume Next
    Set rngIntersect = Application.Intersect(Target, rngMonitored)
 
    If Not rngIntersect Is Nothing Then
 
        myMacro rngIntersect
 
    End If
 
End Sub
 
Sub myMacro(ByRef rngCellsChanged As Excel.Range)
 
 
Dim modificacion As String
    Dim entrega As String
 
    entrega = "Entrega de Ambiente o Aplicación Nueva"
    modificacion = "Modificación Mayor"
 
    If entrega = Range("O18") Then
 
        Rows("25:25").EntireRow.Hidden = False
        Rows("26:26").EntireRow.Hidden = True
        Rows("29:103").EntireRow.Hidden = False
        Rows("104:170").EntireRow.Hidden = True
        MsgBox "Se oculto fila de Entrega de Ambiente", , "Mensaje especial"
 
    Else
        If modificacion = Range("O18") Then
            Rows("25:25").EntireRow.Hidden = True
            Rows("26:26").EntireRow.Hidden = False
            Rows("29:103").EntireRow.Hidden = True
            Rows("104:170").EntireRow.Hidden = False
 
            MsgBox "Se oculto fila de modificación", , "Mensaje especial"
 
        Else
            MsgBox "No cumplio con ninguna condición", , "Mensaje especial"
        End If
    End If
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Sandra Blanco Cepeda (1 intervención) el 18/11/2011 17:28:09
Juango Buenos Días

me podrias ayudar yo soy nueva en esto de la cuestion de macros yo elabore un archivo donde ingreso mis facturas por pagar y en automatico me va dando los resultados que deseo pero tengo una seccion que le puse prevension de pagos y ahi me van apareciendo los proveedores que tengo al corriente y los proveedores con facturas vencidas y no pagadas yo de inicio lo maneje con una lista desplegable yo busco al proveedor y en automatico me aparece la demas informacion pero estoy buscando un macro que en automatico me oculte las filas que no tienen informacion pero no he logrado que las macros aqui presentadas me funciones.

mi pregunta es si te puedo enviar mi archivo a tu correo para que lo cheques quizas no me doy mucho a entender escribiendo

mi correo es [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por luisPerez (1 intervención) el 19/08/2015 16:26:03
Buenos Dias

Estoy usando la Rutina que amablemente nos propocionastes Ricardo y si oculta las filas pero no respeta a las celdas que contienen informacion registrada, es decir que oculta todas las celdas sin importa la condicion de algunas celdas que contienen datos. Deseo usar esta rutina para ocultar aquellas celdas que no contienen datos o que cumplen ciertos criterios. Por favor si me ayuda con este problema gracias

1
2
3
4
5
6
7
8
9
10
For Each celda In Range("b5:v22")
If celda.Value <= 0 Then
ActiveCell.EntireRow.Hidden = True
Else
ActiveCell.EntireRow.Hidden = False
End If
ActiveCell.Offset(1).Select
Next
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Romel (1 intervención) el 06/02/2017 17:50:46
Hola como hago para que no puedan desocultar una fila en macros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ocultar filas que cumplan condicion

Publicado por Kpoch (1 intervención) el 09/12/2017 04:16:59
1
2
3
4
5
Sub MuestraTodasFilas()
Cells.Select
Selection.EntireRow.Hidden = False
Range("C4").Select
End Sub

Mi rango es C4, cambia por el tuyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar