domingo, 11 de mayo de 2014

Ocultar columnas marcadas con un color

Descargue el fichero ocultar_columnas_amarillas.xlsm

Disponemos de una tabla en la que la fila 5 hace de cabecera y en ella hemos marcado de color amarillo ciertas celdas cuyas columnas nos gustaría ocultar. Hemos desarrollado una macro en VBA para Excel que logra ocultar las columnas amarillas.

Luego hemos creado otra macro que muestra todas las columnas. Se ejecutan con sendos botones que figuran al inicio de la hoja.




Sub Oculta_columnas_amarillas()
Dim n As Integer 'ultima columna
Dim R As Range
Dim i As Integer
Rem utiliza la fila 5 para localizar las amarillas
Range("A5").Select
Set R = ActiveCell.SpecialCells(xlLastCell)
n = R.Column
For i = 1 To n
    If Cells(5, i).Interior.ColorIndex = 6 Then
        Columns(i).Hidden = True
    End If
Next i
End Sub
Sub Muestra_columnas()
Cells.EntireColumn.Hidden = False
Range("A5").Select
End Sub

6 comentarios:

  1. Muy interesante, este código me hace alucinar en capturar la propiedad del color de las celdas y almacenarla como variable numérica, luego usarla más adelante en la recursiva para ocultar cualquiera que sea el color de las celdas resaltadas.

    ResponderEliminar
  2. Hola, esta macro me parece muy útil, pero estoy tratando de usar filas y diferente color y no me es posible, Agradecería tu ayuda.

    ResponderEliminar
    Respuestas
    1. ColorIndex = 6 es amarillo
      Otros valores para que puedas cambiar los colores son los siguientes:
      NEGRO ColorIndex = 1
      BLANCO ColorIndex = 2
      GRIS ColorIndex = 15
      MARRÓN ColorIndex = 53
      ROJO ColorIndex = 3
      NARANJA ColorIndex = 46
      VERDE ColorIndex = 4
      AZUL ColorIndex = 5
      VIOLETA ColorIndex = 29

      Un saludo.

      Eliminar
  3. Muy buenas Adolfo...

    Antes que nada, feliz 2016...

    GENIAL, felicidades por tu aporte. Me biene de perlas. La única pega para poder usarlo en mi caso es conseguir ejecutar las macros sin necesidad de los botones. Se podrían poner "flotantes"? o simplemente, asignarlos a una combinación de teclas. Por ejemplo CTRL + Ñ y CTRL + Ç (que son de las pocas que quedan libres en excel)

    Y añadir más botones para diferentes colores?

    (Uso el excel para hacer una importación a CSV y este subirlo a Magento)

    Mil millones de gracias... en serio!!!


    Saludos

    ResponderEliminar
  4. Muy buenas de nuevo...

    Perdona por no haber leido antes un poco. He encontrado una de las soluciones en tu blog:
    http://www.excelavanzado.com/2010/09/lanzar-macros-con-iconos-y-botones.html

    Pero si me pudieras ayudar a asignar varios colores diferentes, sería genial...

    Mil millones de gracias... (de nuevo)

    Recibe un cordial saludo!

    ResponderEliminar
  5. disculpe y si es el mismo codigo para ocultar las filas lo eh intentado y no me resulta

    ResponderEliminar