Macro para mostrar columna oculta de acuerdo a valor de una celda

Digamos que tengo una hoja de excel con muchas "n" columnas cada columna almacena datos de una semana, ejemplo:

columna c = C1= 3-sep-2014 aqui estan los datos capturados en esa fecha

columna d = D1= 10-sep-2014 aqui estan los datos capturados en esa fecha

columna e = E1= 17-sep-2014 aqui estan los datos capturados en esa fecha

Y así sucesivamente

Me gustaría capturar en la celda B3 la fecha que quiero mostrar ejemplo celda B3 = 10-sep-2014, y después dar click en un botón que contenga la macro para que muestre la columna oculta correspondiente.

1 Respuesta

Respuesta
1

H o l a:

Si vas a capturar la fecha en B3, supongo que tus datos empiecen en una fila más abajo. Entonces en cuál fila tienes las fechas, podrías poner una imagen de cómo tienes tus datos.

Otra cosa importante, si en la columna B tienes fecha y se tiene que ocultar la columna B, entonces ya no tendrías forma de poner otra fecha.

Lo ideal sería que tus datos empezaran en la columna C y en la fila 4, de esa forma podrías escribir una fecha en la celda B3 y presionar el botón, la macro ocultaría las columnas desde la C en adelante y siempre tendrías la celda B3 visible para poner otra fecha.

Hola Dante gracias por tu respuesta, te comento que el ejemplo que di, no es exactamente el archivo donde voy a aplicar esta macro, ahora te mando una imagen pero es solo ilustrativa, espero que esto sirva para aclarar el tema.

H o l a:

La macro va a funcionar si los datos los tienes tal cual los pusiste en la imagen.

Te anexo la macro para que la pongas en tu botón, para que se muestren todas las columnas deja la celda B3 en blanco y presiona el botón.

Sub OcultarColumnas()
'Por.Dante Amor
    uc = Cells(1, Columns.Count).End(xlToLeft).Column
    ini = Columns("D").Column
    fin = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
    Range(Cells(1, ini), Cells(1, fin)).EntireColumn.Hidden = False
    If [B3] <> "" Then
        For i = fin To ini Step -1
            If Cells(1, i) <> [B3] Then
                Columns(i).EntireColumn.Hidden = True
            End If
        Next
    End If
End Sub

Gracias Dante funciona muy bien ahora tengo una duda más, ¿es posible modificar la macro para que solo tome en cuenta aquellas columnas que en su encabezado no contienen fecha? En la imagen siguiente te dejo un ejemplo de como en la columna G y en la columna I, no hay ninguna fecha en su encabezado, y aquí es donde se pone más interesante ya que lo que se ocuparía seria que al ejecutar la macro solo muestre la columna de la fecha capturada, más aquellas columnas que no contienen ninguna fecha en su encabezado como las columnas G / I.

Gracias nuevamente por tu tiempo.

H o l a:

Con gusto te sigo apoyando, podrías valorar esta respuesta y crear una nueva pregunta por cada petición.

s a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas