Mostrar y ocultar columnas con una macro

Espero y me puedan ayudar por favor.

Cuando el usuario escriba en la columna A2 "Anulacion" se muestren unicamente ciertas columnas y se oculten otras pertenecientes a refacturacion y cuando escriba "refacturacion" se muestren ciertas columnas y se oculten las de anulación. Pero hay otras columnas que siempre deben de estar visibles para ambos

Es decir: Con la palabra Anulación deben de estar visibles unicamente las columnas C, H, N, O, R, S, W

Refacturacion: D,E,F,K,P,T,V y Para ambos: B,G,I,J,L,M,Q,U

1 respuesta

Respuesta
1

Yo te ayudaría con esta nueva solicitud... pero aún no valoraste la respuesta acerca del bloqueo que responde perfectamente a lo que habías solicitado.

Cuando tenga valorada y cerrada esa consulta seguiré con ésta.

Sdos.

Elsa

Te dejo la macro para ocultar.

Si tu hoja fue protegida con tildes en las opciones que muestro en la imagen no son necesarias las líneas para desproteger-proteger hoja que dejé en la macro. Si dejas las instrucciones coloca la clave si la tuviera.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim Isect As Range
'ATENCIÓN: ajusta el rango
Set Isect = Application.Intersect(Target, Range("A2:A2000"))
If Not Isect Is Nothing Then
    ActiveSheet.Unprotect
'ATENCIÓN: ajusta los textos tal como los tienes en tu hoja (mayúsculas, acentos, etc)
    If Isect = "Anulación" Then
        Range("C1, H1, N1, O1, R1, S1, W1"). EntireColumn.Hidden = False
        Range("D1,E1,F1,K1,P1,T1,V1").EntireColumn.Hidden = True
    ElseIf Isect = "Refacturación" Then
        Range("C1, H1, N1, O1, R1, S1, W1").EntireColumn.Hidden = True
        Range("D1,E1,F1,K1,P1,T1,V1").EntireColumn.Hidden = False
    End If
    ActiveSheet.Protect
End If
End Sub

Lee con atención los comentarios de la macro para hacer los ajustes necesarios.

Sdos y no olvides valorar las respuestas.

¡Gracias! 

Acabo de ejecutar el código que me amablemente me ayudaste y si ejecuta. Solamente que en la columna A el usuario va ir escribiendo cada vez que haya una anulación o refacturación de facturas. Le cambie el rango a un Rangotipo que cree donde me abarca de la A2 hasta el A1048576.

Y el código solo ejecuta la pura fila 2 y si quiero escribir hacia abajo me da el error de que esta bloqueado como te lo muestro en la imagen.

Gracias

Antes de proteger la hija selecciona la col A y quítale el bloqueo ( desde menú Formato). Luego protegela normalmente.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas