Ocultar y Mostrar Filas de acuerdo al valor de una celda

Tengo un archivo donde lo que me interesa es ocultar toda la fila si la celda C9 valor es P si no que deje visible toda la fila y continuar así hasta que termine un listado, anexo mi archivo, espero me puedan apoyar!

Respuesta
2

Para que funcione de manera automática, pon la siguiente macro en los eventos de tu hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C2")) Is Nothing Then
        Application.ScreenUpdating = False
        u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
        Rows("9:" & u).EntireRow.Hidden = False
        For i = u To 9 Step -1
            If Cells(i, "C") = Target.Value Then
                Rows(i).EntireRow.Hidden = True
            End If
        Next
        Application.ScreenUpdating = True
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

Funciona de la siguiente manera, escribe en la celda C2 la letra P y presiona enter. En automático se ocultarán todas las filas desde C9 y hasta la última fila con datos que en la columna C tenga valor P

Cambia la letra P por S y se ocultarán las filas con el valor S. Borra la letra de la celda C2 y se mostrarán todas las filas.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Gracias por la pronta respuesta, excelente si funciona pero tengo otra pregunta como puedo hacer para asignar esta acción a un command button al hacer clic me muestre el Producto y después lo oculte al hacer clic en otro botón, y esto también para ver y ocultar ship.

Para ocultar

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    Rows("9:" & u).EntireRow.Hidden = False
    For i = u To 9 Step -1
        If Cells(i, "C") = "P" Then
            Rows(i).EntireRow.Hidden = True
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Para mostrar

Private Sub CommandButton2_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    Rows("9:" & u).EntireRow.Hidden = False
    Application.ScreenUpdating = True
End Sub

No entendí lo que vas a ocultar en Ship. 

Con mucho gusto te ayudo con todas tus peticiones.

Cambia la valoración de esta respuesta a "Excelente" y crea una nueva pregunta en el tema de microsoft Excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas