hola expertos tengo este trabajo y de acuerdo al numero que se encuentre en la celda a1 mi codigo lo busca en las tablas y lo marca de color amarillo
pero quisiera ir mas alla y quisiera agregarle una condicion al codigo como la siguiente
que si la distancia (en celdas) entre la primer cifra coloreada de amarillo y la segunda cifra sea igual a la distancia entre la tercer cifra y la cuarta cifra y por ultimo se colorearan en rojo
Adjunto | Tamaño |
---|---|
colorear celdas bajo condicion | 428.41 KB |
lo primero ¿sabes que Excel tiene una cosa llamada Formato Condicional que colorea celdas basado en condiciones?
Quiero decir, que lo de colorear de amarillo las celdas que coincidan con un valor o con una condición no requiere programación. Pero bueno, eso es otra historia.
Sobre tu pregunta de las distancias en celdas:
En tu código, ahora mismo, no sabes en qué posición encuentra el número, simplemente los recorre todos, pero no sabemos en qué posición se produce la aparición.
Mi consejo es que tu procedimiento BuscarÁrea (yo no pondría acentos en los nombres dentro de VBA) en vez de que sea un SUB, lo convirtieras en una función que devolviese como resultado la posición donde ha encontrado el valor.
ese valor ya lo puedes guardar en cada columna y comparar las distancias, o lo que necesites.
así que cambiaría más o menos así (pongo en negrita lo que he cambiado):
Function BuscarÁrea(n As Integer, Número As Integer, x1 As Long, x2 As Long) As Integer
Application.ScreenUpdating = False
y = (n - 1) * 2 + 5 'empieza en col E
aTablas:
Range(Cells(x1, y), Cells(x2, y)).Interior.ColorIndex = xlNone
For x = x1 To x2
If Cells(x, y) = Número Then
Cells(x, y).Interior.Color = vbYellow
BuscarÁrea = x 'asignamos el valor del resultado
'pasa a la tabla siguiente
GoTo siguenTablas
End If
Next
siguenTablas:
'sigue con otras tablas
y = y + 9
If y > 57 Then Exit Function
GoTo aTablas
End Function
En las llamadas que hagas ahora al procedimiento, puedes guardar el resultado en una variable, por ejemplo
resultado = BuscarÁrea(n, Mid(valor, n, 1), 4, 13)
bueno, esto ya tendrás que organizarlo según la comprobación que quieras hacer
------
Ya sé Excel, pero necesito más.