Modificar color fijo al ejecutar macro en excel

Tengo una macro que busca la coincidencias de un numero de 4 cifras y les da color naranja a aquellas que coinciden pero antes de ejecutar la macro hay colores fijos en ciertas filas como puedo hacer para que al buscar las coincidencias esta no me elimine el color fijo de las filas y aun así me seleccione las coincidencias

Sub coincidencias()

Dim n As Range
Dim lookup

ElRango = "E1:T67"

'se solicita ingreso del nro de 4 dígitos
lookup = Format(Val(InputBox("ingrese NUMERO de referencia", "BÚSQUEDA DE COINCIDENCIAS")), "0000")
If Val(lookup) = 0 Then
Range(ElRango).Interior.ColorIndex = -4142
Columns("Y:Y").Clear
[Z1].ClearContents
For LaFila = 0 To Range(ElRango).Rows.Count Step 5
For LaColu = 0 To Range(ElRango).Columns.Count - 1
Range("E1").Offset(LaFila, LaColu).Interior.ColorIndex = 6
Next
Next
Exit Sub

1 respuesta

Respuesta
2

Este ajuste ya te lo envié por mail. Si lo que intentas es que no te quite el color al NO encontrar una coincidencia debes inhabilitar la línea marcada en el bucle de la macro llamada Coincidencias, según tu último libro enviado.

For Each n In Range(ElRango)

If n = lookup Or Left(n.Value, 2) = Left(lookup, 2) Or Right(n.Value, 2) = Right(lookup, 2) Or _
(Left(n.Value, 1) = Left(lookup, 1) And Right(n.Value, 1) = Right(lookup, 1)) Or _
(Left(n.Value, 1) = Left(lookup, 1) And Mid(n.Value, 3, 1) = Mid(lookup, 3, 1)) Or _
(Mid(n.Value, 2, 1) = Mid(lookup, 2, 1) And Right(n.Value, 1) = Right(lookup, 1)) Or _
(Mid(n.Value, 2, 1) = Mid(lookup, 2, 1) And Mid(n.Value, 3, 1) = Mid(lookup, 3, 1)) Then
n.Interior.ColorIndex = 44
'se agrega el nro a la col Y
Range("Y" & x) = n
x = x + 1
Else 'opcional quitar color a los no coincidentes.
'n.Interior.Color = xlNone    inhabilitar
End If
Next n

Sdos!

lo que pasa es que tengo las siguientes filas en color amarillo y no quiero que cuando busque una coincidencia tenga que eliminar todo las filas de color amarillo los rangos de color amarillo son "f1;S1","F6:S6","F11;S11","F12;S12","F17;S17","F22;S22","F23;S23",F28;S28",

un amigo me ayudo con este codigo pero me marca las celdas de color amarillo

Sub coincidencias()
'ajustada x Elsamatilde
Dim n As Range
Dim lookup

ElRango = "E1:T67"

'se solicita ingreso del nro de 4 dígitos
lookup = Format(Val(InputBox("ingrese NUMERO de referencia", "BUSQUEDA DE COINCIDENCIAS")), "0000")
If Val(lookup) = 0 Then
Range(ElRango).Interior.ColorIndex = -4142
Columns("Y:Y").Clear
[Z1].ClearContents
For LaFila = 0 To Range(ElRango).Rows.Count Step 5
For LaColu = 0 To Range(ElRango).Columns.Count - 1
Range("E1").Offset(LaFila, LaColu).Interior.ColorIndex = 6
Next
Next
Exit Sub

la podremos modificar ya te envie el trabajo como debe estar las filas de color amarillo

La macro no te quita los colores cuando busca coincidencias si dejas inhabilitada esa línea que te marqué... pero lo hace si no ingresas nada en el cuadro de mensaje (esa parte del código no lo utilizaba en mis módulos por eso no reparé en esas instrucciones)

Sub coincidencias()
'ajustada x Elsamatilde
Dim n As Range
Dim lookup
ElRango = "E1:T67"
'se solicita ingreso del nro de 4 dígitos
lookup = Format(Val(InputBox("ingrese NUMERO de referencia", "BUSQUEDA DE COINCIDENCIAS")), "0000")
If Val(lookup) = 0 Then
    Columns("Y:Y").Clear
    [Z1].ClearContents
Else
    If Len(lookup) <> 4 Then
        MsgBox "Número no válido.", , "ERROR"
        Exit Sub
    End If
End If

Luego sigue el resto de tu código. Te estoy enviando el libro.

Sdos!

excelente pero como hacemos como hacia antes eliminar el color de las coincidencias anteriores y volver a buscar coincidencias nuevas

¿A ver... se quitan o no se quitan colores anteriores?

No parece ser clara tu idea... ya están pintadas... si ejecutas el proceso e ingresas un nro se pintan de otro color ... pero si cancelas el proceso NO se quitan los colores anteriores (amarillo).

Ahora, luego de ejecutar el proceso tenés tus celdas de amarillo + las celdas de naranja de este proceso.

Entonces, qué intentas decirle a la macro: ¿Qué te deje los amarillos pero no los naranjas? ¿Siempre serán amarillos? Y si es la 1ra vez donde aún no tenés ningún color la macro te pintará de naranja... creo que hay parte del proceso que no queda claro.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas