Duda para VBA Excel

Fernando
05 de Noviembre del 2003
Buenas, tal vez este no sea el foro indicado, pero es el único que encontre mas parecido.
Les cuento, necesito barrer muchas casillas de un libro de excel y pintarlas de colores según su contenido, lo malo es que el contenido no es exacto, em explico con ejemplo:
supongamos que hay 4 casillas con lo siguiente:
gasto X2 P80
ingreso X1 p80
saldo X2 P80
gasto X2 p81
la idea es que me pinte de rojo (p. ej.) las casillas que tengan dentro del texto el X2, para el ejemplo, la primera, la tercera y la cuarta.
Se que lo puedo hacer si doy las instrucciones para cada combinación posible, pero como ya les he dicho son MUCHAS las combinaciones y el codigo se hace eterno.
¿Como deberia quedar la condición?

if activecell.value=__________________ then
activecell.interior.colorindex=12
end if

Cualquier sugerencia se les agradecerá eternamente.

sdemingo
05 de Noviembre del 2003
Hola,

Si la sintaxis es siempre la misma, es decir,
texto Xnumero Pnumero separado por espacios, puedes hacer lo siguiente:

Dim valorX() as String

valorX = Split(activecell.value, " ", -1, vbBinaryCompare)

Select Case Right(ValorX(1), 1)
Case "1"
activecell.interior.colorindex=12
Case "2"
activecell.interior.colorindex=13
Case "3"
activecell.interior.colorindex=14
..........
End Select

Si esto lo metes dentro de un bucle que recorra todas las celdas ya tendrías solucionado el problema (espero)

Suerte

Un saludo
sdemingo

Benjack
05 de Noviembre del 2003
If InStr(ActiveCell.Value, "X2") Then
ActiveCell.Interior.ColorIndex = 12
End If

INFRIT
05 de Noviembre del 2003

BENJACK CHUPA LA QUE CUELGA