Ayuda con macro mpara ocultar columnas

Me gustaría que me ayuden a crear una macro para lo siguiente:
En la la Fila 1 las celdas tienen una fórmula que dependiendo de los datos de otra fila me muestra valores de 0 ó 1; o que quiero es una macro que revise los datos de la fila 1 y si encuentra en una celda un valor de "0" oculte la columna que corresponde a esa celda; y si encuentra "1" mantenga visible la columna. Y que le pueda colocar el numero de celdas en la fila que debe revisar.
Revisando algunas respuestas encontré una que oculta columnas pero siempre y cuando no haya ningún dato e toda la columna. Yo solo quiero que a partir de los datos de una FILA ("0" oculta columna y "1" la mantiene visible) lo que me llamo la atencio es que le puedo poner la cantidad de columnas que debe revisar.
Private Sub Workbook_Open()
Dim e As Integer
For e = 1 To 70 'columnas
Worksheets("Hoja1").UsedRange.Columns(e).Rows.Select
Dim celda As Range
Dim contador
contador = 0
For Each celda In Selection
If celda.Value <> "" Then contador = contador + 1
Next
If contador = 1 Then Columns(e).Hidden = True
Next
Espero haber explicado bien mi problema y Agradezco de antemano la ayuda que puedan brindar.

1 respuesta

Respuesta
1
Te paso más abajo la macro adaptada. Lo he dejado en 10 columnas, pero le puedes poner las que tú necesites.
Saludos
Angel
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub Workbook_Open()
   Dim celda As Range
   Dim contador
   Dim e As Integer
   For e = 1 To 10 'columnas
       Worksheets("Hoja1").UsedRange.Columns(e).Rows(1).Select
       If ActiveCell.Value = 0 Then
          Columns(e).Hidden = True
       Else
          If ActiveCell.Value = 1 Then
             Columns(e).Hidden = False
          End If
       End If
   Next
   Range("A1").Select
End Sub
Gracias por la ayuda pero la macro que me envías hace lo mismo que la que deje como referencia capaz no me he explicado bien; voy a tomar tu ayuda ( 10 columnas) para explicarme mejor:
la macro que necesito debe revisar el contenido de las celdas A1:J1 (A1,B1,C1,D1,E1,F1,G1,H1,I1,J1) y donde encuentre un valor de "0" ocultar la columna a la que corresponde (Ejem: si A1 tiene valor "0" entonces oculta Columna A, si C1 tiene valor "0" entonces ocultar columna C, etc.) y donde encuentre "1" mostrar la columna que corresponde esa celda (ejem: si D1 tiene valor "1" mostrar la columna D, etc) y cada vez vez que ejecute la macro debe de actualizarse en lo que se refiere a ocultar y mostrar columnas (ejem si antes A1 tenia valor "0" y estaba oculta cuando ejecute nuevamente la macro y A1 tenga valor "1" debe mostrar la columna A)
No soy bueno con este asunto de las macros que ayudan mucho; por ello he tratado de ser más explicito esta vez; Te agradezco mucho la ayuda que me puedas seguir brindando.
Quedo a la espera de tus comentarios.
La macro que te he pasado no hace lo mismo que la que dejaste como referencia. Está modificada para hacer exactamente lo que dices que necesitas.
Tengo la sensación de que ni tan siquiera la has probado.
Angel muchas gracias tienes razón tu macro funciona excelente, no se porque cunado pegue la macro en un botón de control me seguía ejecutando la macro que tenia anteriormente, revisanto también la tenia pegada en thisworkbook; como te mencionaba no soy muy bueno en esto de las macros; pero gracias a tu gran ayuda pude solucionar mi problema y disculpa por decir que estaba mal tu trabajo.
Quedo agradecidazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas