Macro para colorear rango según un valor

Necesito un función que me colore el rango (B5:F5) si A5=2 y asi sucesivamente hacia abajo... Osea que busque en la columna A todos los numero 2 y me colore los rangos respectivos.

espero puedan ayudarme...


1 Respuesta

Respuesta
3

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: colorear
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub colorear()
'Por.DAM
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, "A") = 2 Then
        Range(Cells(i, "B"), Cells(i, "F")).Interior.ColorIndex = 4
    Else
        Range(Cells(i, "B"), Cells(i, "F")).Interior.ColorIndex = xlNone
    End If
Next
End Sub

Si quieres otro color, cambia en esta línea el número 4 (verde), 5(azul), 3 (rojo), 6 (amarillo)

Range(Cells(i, "B"), Cells(i, "F")). Interior.ColorIndex = 4

Saludos. DAM
Si es lo que necesitas.

ok experto pero yo no quiero ejecutarlo con un botón, sino que al momento de yo cambiar el numero se pinte o despinte el rango.

se puede hacer eso?

Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu hoja 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. Del lado derecho copia la macro

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    If Target.Count > 1 Then 'Exit Sub
        For Each c In Selection
            If c = 2 Then
                Range(Cells(c.Row, "B"), Cells(c.Row, "F")).Interior.ColorIndex = 4
            Else
                Range(Cells(c.Row, "B"), Cells(c.Row, "F")).Interior.ColorIndex = xlNone
            End If
        Next
    Else
        If Target = 2 Then
            Range(Cells(Target.Row, "B"), Cells(Target.Row, "F")).Interior.ColorIndex = 4
        Else
            Range(Cells(Target.Row, "B"), Cells(Target.Row, "F")).Interior.ColorIndex = xlNone
        End If
    End If
End If
End Sub

Saludos.DAM
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas