Calvus
XLDnaute Barbatruc
Bonjour le forum,
Comment faire pour utiliser les valeurs d'Arrays déclarés dans une macro avec un Select Case ?
Par exemple ceci fonctionne :
Mais si je fais appel au nom de l'Array, évidemment ça "bugue".
J'ai mis le code intégral dans le fichier exemple, dont le but est de colorer des groupes de shapes.
La 1ère macro fonctionne, appelant directement chaque cas
La 2nde plante pour les raisons invoquées plus haut.
Voici les 2 codes :
J'aimerais évidemment utiliser le 2nd code.
Merci et bonne journée
Comment faire pour utiliser les valeurs d'Arrays déclarés dans une macro avec un Select Case ?
Par exemple ceci fonctionne :
VB:
Cadre1 = Array("01", "02", "03", "04")
Select Case sh.Name
Case "01", "02", "03", "04"
Mais si je fais appel au nom de l'Array, évidemment ça "bugue".
Code:
Cadre1 = Array("01", "02", "03", "04")
Select Case sh.Name
Case Cadre1
J'ai mis le code intégral dans le fichier exemple, dont le but est de colorer des groupes de shapes.
La 1ère macro fonctionne, appelant directement chaque cas
La 2nde plante pour les raisons invoquées plus haut.
Voici les 2 codes :
Code:
Sub Colorer()
Dim i As Integer, j As Integer, t, f As Worksheet, t1, f1 As Worksheet
Dim Cadre1, Cadre2, Cadre3
Cadre1 = Array("01", "02", "03", "04")
Cadre2 = Array("05", "06", "07", "08")
Cadre3 = Array("09", "10", "11", "12")
Dim sh As Shape, couleur1, couleur2, couleur3, couleur4, couleur5
couleur1 = RGB(180, 196, 100)
couleur2 = RGB(180, 226, 120)
couleur3 = RGB(140, 186, 160)
For Each sh In ActiveSheet.Shapes
If IsNumeric(sh.Name) Then
Select Case sh.Name
Case "01", "02", "03", "04"
sh.Fill.ForeColor.RGB = couleur1
Case "05", "06", "07", "08"
sh.Fill.ForeColor.RGB = couleur2
Case "09", "10", "11", "12"
sh.Fill.ForeColor.RGB = couleur3
End Select
End If
Next sh
End Sub
Code:
Sub Colorer_2()
Dim i As Integer, j As Integer, t, f As Worksheet, t1, f1 As Worksheet
Dim Cadre1, Cadre2, Cadre3
Cadre1 = Array("01", "02", "03", "04")
Cadre2 = Array("05", "06", "07", "08")
Cadre3 = Array("09", "10", "11", "12")
Dim sh As Shape, couleur1, couleur2, couleur3, couleur4, couleur5
couleur1 = RGB(180, 196, 100)
couleur2 = RGB(180, 226, 120)
couleur3 = RGB(140, 186, 160)
For Each sh In ActiveSheet.Shapes
If IsNumeric(sh.Name) Then
Select Case sh.Name
Case Cadre1
sh.Fill.ForeColor.RGB = couleur1
Case Cadre2
sh.Fill.ForeColor.RGB = couleur2
Case Cadre3
sh.Fill.ForeColor.RGB = couleur3
End Select
End If
Next sh
End Sub
J'aimerais évidemment utiliser le 2nd code.
Merci et bonne journée