Shapes, ForeColor et RGB

Bonjour,

Je désire créer une série de formes (rondes) avec la macro suivante :

Sub Galopin()
Dim i%, ArrC, xg%, xh%, xd%
On Error Resume Next
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
xg = 25: xh = 25: xd = 24
ArrC = "26112 255 65280" 
For i = 0 To 2
   ActiveSheet.Shapes.AddShape(msoShapeOval, xg + (i - 1) * (xd + 5), xh, xd, xd).Select
    With Selection.ShapeRange.Fill
      .Visible = msoTrue
      .ForeColor.RGB = RGB(255, 0, 0)
      .Solid
    End With
Next
    Range("A1").Select
End Sub

Ce qui en l'état donne le résultat escompté.

Comment utiliser les valeurs de Arr au lieu de RGB

2 hypothèses :

Utiliser une autre propriété que RGB pour le remplissage ou...

Utiliser une fonction de conversion en RGB

Avez vous une de ces solution ?

Merci

A+

Bonjour,

Il faut spliter la variable Arrc et l'utiliser dans la boucle :

Sub Galopin()
Dim i%, ArrC, xg%, xh%, xd%
On Error Resume Next
ActiveSheet.DrawingObjects.Delete
On Error GoTo 0
xg = 25: xh = 25: xd = 24
ArrC = Split("26112 255 65280", " ")
For i = 0 To 2
   ActiveSheet.Shapes.AddShape(msoShapeOval, xg + (i - 1) * (xd + 5), xh, xd, xd).Select
    With Selection.ShapeRange.Fill
      .Visible = msoTrue
      .ForeColor.RGB = ArrC(i) ' RGB(255, 0, 0)
      .Solid
    End With
Next
    Range("A1").Select
End Sub

Bonjour,

... Le problème c'est que c'est pas du RGB donc on a une incompatibilité de type.

D'ou mes 2 hypothèses :

Utiliser une autre propriété que RGB pour le remplissage ou...

Utiliser une fonction de conversion en RGB

??

Vous n'obtenez pas ça ?

capture
14classeur5.xlsm (16.07 Ko)
capture

Je n'ai toujours pas compris où était votre problème.

Oui, Oui bien sur... J'ai tellement la tête dans le guidon !

J'ai juste oublié le "split" dans ma macro réelle. Dire que j'ai passé au moins 10 ' à comparer au mot à mot les 2 macros...

A+

Rechercher des sujets similaires à "shapes forecolor rgb"