Estimado te 02 adjunto la rutina:
He considerado que por defecto al inicio los botones estarán activos con el color azul.
Copia la rutina y pegarlo en un módulo, luego en las formas le das clic derecho / asignar macro y: en la figura1 le asignas PruebaRojoAzul . Repites el proceso con la figura dos pero esta vez le asignas PruebaAzulRojo
Sub PruebaRojoAzul()
'Selecciono la forma1
ActiveSheet.Shapes("Rounded Rectangle 1").Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0) 'Le indico que la forma se ponga en color rojo
.Transparency = 0 'No quiero transparecia así que la dejo en cero
.Solid ' En color solido
End With
'Por estética cambio borde de línea
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
'Selecciono Forma2
ActiveSheet.Shapes("Rounded Rectangle 2").Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 76, 156)
.Transparency = 0
.Solid
End With
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 76, 156)
.Transparency = 0
End With
'Indico que una vez terminado el proceso se ubique en la celda A1 de la hoja activa
Range("A1").Select
End Sub
Sub PruebaAzulRojo()
ActiveSheet.Shapes("Rounded Rectangle 2").Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
ActiveSheet.Shapes("Rounded Rectangle 1").Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 76, 156)
.Transparency = 0
.Solid
End With
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 76, 156)
.Transparency = 0
End With
Range("A1").Select
End Sub
Considerar:
Deberás asignar el nombre de la forma para eso selecciona la forma y en en la casilla de nombre aparece el nombre asignado:
![](//blob.todoexpertos.com/uploads/md/565ccd438ae93c5333c31f8321fb4f23.jpg)
Y en la línea: ActiveSheet. Shapes("Rounded Rectangle 1").Select
Rounded Rectangle 1, lo cambias por el nombre que tenga tu forma.
En caso los colores no sean los que buscas ve al link que te envié con los colores RGB te posicionas en el color deseado ejemplo: Quieres que sea verde
![](//blob.todoexpertos.com/uploads/md/2590fcd84fd24c6322d2165e917be8d8.jpg)
Vas a tu rutina y en la línea modificas
.ForeColor.RGB = RGB(0, 76, 156)
Por
.ForeColor.RGB = RGB(0, 204, 0)
Si te fijas va en el orden como muestra la tabla Red=0,Green=204, Blue=0