Acortar macro

Hola,
Quiero en un cuadro de dibujo compuesto por fichas ir cambiando los colores de las fichas según el número que se les designe, la forma en que lo hago es muy larga y me gustaría poder acortarla, porque son muchas provincias y colores:
Private Sub CommandButton1_Click()
Dim FICHA A As Integer, FICHA B As Integer, .....
FICHA A = ActiveSheet.Range("B2").Value
FICHA B = ActiveSheet.Range("B3").Value
....... (resto de comunidades)
If FICHA A = 1 Then
ActiveSheet.Shapes("Coruña").Select
Selection.ShapeRange.Fill.UserPicture "C:\Indicadores\1.jpg"
ElseIf FICHA A = 2 Then
ActiveSheet.Shapes("Coruña").Select
Selection.ShapeRange.Fill.UserPicture "C:\Indicadores\2.jpg"
ElseIf FICHA A = 3 Then
ActiveSheet.Shapes("Coruña").Select
Selection.ShapeRange.Fill.UserPicture "C:\Indicadores\3.jpg"...
... Resto de colores y así repetido por cada comunidad.
¿Me podrías ayudar? Gracias
1

1 Respuesta

273.250 pts. Programador en VBA, Visual Studio, Contador Privado
No entiendo bien tu consulta. No sé para qué quieres simplificar lo ya digitado. Bueno en fin, lo que se me ocurre es ponerle el color directamente a las celdas por medio de la rutina:
Dim i As Integer
For i = 0 To 56
       Cells(i + 1, 2).Interior.ColorIndex = i
Next i
Y listo, esto te pone los colores en las celdas.
[email protected]
Lo que quería colorear son autoformas.
He encontrado ya la forma de colorearlas con números primas (1,2,3) pero como podría cambiar la paleta de colores para que por ejemplo el color 2=rojo se convierta en el color RGB(255,204,204) (=rojo pálido).?
Gracias
Ya eso es otra cosa, se tendría que hacer por medio de asignación de los colores como por ejemplo:
Selection.ShapeRange.Fill.UserPicture = 2 Then Selection.ShapeRange.Fill.UserPicture = RGB(255,204,204)
Pero tendrías que saber la combinación exacta de lo que quieres.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas