benjamin.prade
XLDnaute Nouveau
Bonjour la communauté,
J'ai un petit problème de sélection de formes via VBA dans Excel. Je m'explique :
J'ai un onglet intitulé "Métadonnées" dans lequel j'ai fait une mise en page précise avec plusieurs formes (rectangles, ellipses, cadres ...). Chacune de ces formes possède un nom. Par exemple dans le code ci-dessous la forme sélectionnée MEPR1 correspond à Métadonnées (ME) Petit Rectangle (PR) 1 (c'est le premier de la page).
En appuyant sur mon bouton, une Userform s'ouvre où j'ai le choix entre 4 cases à cocher, chacune accompagnée d'un nom de couleur. Le code pour ma première case est le suivant :
Private Sub CheckBox1_Click()
CheckBox1.Value = True
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
' déclaration de variables
Dim shp As Shape
Dim wks As Worksheet
' affectation
Set wks = ActiveWorkbook.Worksheets("Métadonnées")
Set shp = wks.Shapes("MEPR1")
shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 102)
End Sub
Mon problème est que pour le moment ce code ne sélectionne qu'une forme et que j'aimerais bien pouvoir en sélectionner plusieurs en même temps (je ne veux pas toutes les sélectionner) en listant leurs noms.
J'ai déjà essayé :
Set shp = wks.Shapes("MEPR1" & "MEPR2")
Set shp = wks.Shapes("MEPR1"), wks.Shapes("MEPR2")
Mais ça ne marche pas.
Pour l'instant je réécris le code pour chaque forme de ma page mais vous comprenez que c'est assez long et qu'il y a sûrement mieux à faire.
Si vous avez donc des idées elles sont les bienvenues.
Merci d'avance !
J'ai un petit problème de sélection de formes via VBA dans Excel. Je m'explique :
J'ai un onglet intitulé "Métadonnées" dans lequel j'ai fait une mise en page précise avec plusieurs formes (rectangles, ellipses, cadres ...). Chacune de ces formes possède un nom. Par exemple dans le code ci-dessous la forme sélectionnée MEPR1 correspond à Métadonnées (ME) Petit Rectangle (PR) 1 (c'est le premier de la page).
En appuyant sur mon bouton, une Userform s'ouvre où j'ai le choix entre 4 cases à cocher, chacune accompagnée d'un nom de couleur. Le code pour ma première case est le suivant :
Private Sub CheckBox1_Click()
CheckBox1.Value = True
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
' déclaration de variables
Dim shp As Shape
Dim wks As Worksheet
' affectation
Set wks = ActiveWorkbook.Worksheets("Métadonnées")
Set shp = wks.Shapes("MEPR1")
shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 102)
End Sub
Mon problème est que pour le moment ce code ne sélectionne qu'une forme et que j'aimerais bien pouvoir en sélectionner plusieurs en même temps (je ne veux pas toutes les sélectionner) en listant leurs noms.
J'ai déjà essayé :
Set shp = wks.Shapes("MEPR1" & "MEPR2")
Set shp = wks.Shapes("MEPR1"), wks.Shapes("MEPR2")
Mais ça ne marche pas.
Pour l'instant je réécris le code pour chaque forme de ma page mais vous comprenez que c'est assez long et qu'il y a sûrement mieux à faire.
Si vous avez donc des idées elles sont les bienvenues.
Merci d'avance !