Duda para VBA Excel
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.
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.
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
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
If InStr(ActiveCell.Value, "X2") Then
ActiveCell.Interior.ColorIndex = 12
End If
ActiveCell.Interior.ColorIndex = 12
End If
