Bonjour, j'aimerai savoir comment alléger le code ci-dessous. Il me permet de créer un légende pour un graphique. Le nombre d'intitulés en Col AC et + ou - grand et je pense mettre par la suite un maximum car de toute façon la lisibilité du graph ne serait pas bonne.
J'ai joint une copie d'écran; je souhaite que dans ma légende, la police de l'intitulé soit de la même couleur que la couleur du fond de la cellule où se trouve l'intitulé, dans la Col AC, de la ligne 4 à une variable. La Col AD sert de référence uniquement (car au lancement de la macro la Col AC n'a pas de couleurs) et j'ai le code RGB en Col AE.
J'ai écrit le code ainsi, parce que je ne sait pas comment placer l'intitulé 2, 3, 4, etc. à chaque fois 20 pouces plus bas. Je pense qu'il faudrait une deuxième variable. Je l'ai fait manuellement en changent le nbre rouge dans (ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 135, 110, 110).Select.
J'espère que vous pourrez m'aider. MERCI à vous.
Sub Legende()
'Dim Brand1 As String
Dim TotalBrands As Integer
TotalBrands = LigneFin = Range("AC" & Rows.Count).End(xlUp).Row
Dim Brand1 As String
Dim Brand2 As String
Dim Brand3 As String
Dim Brand4 As String
Dim Brand5 As String
Dim Brand6 As String
Dim Brand7 As String
Dim Brand8 As String
Dim Brand9 As String
Dim Brand10 As String
Dim Brand11 As String
Dim Brand12 As String
Dim Brand13 As String
Dim Brand14 As String
Dim Brand15 As String
Dim Brand16 As String
Dim Marque As String
Brand1 = Sheets("Extract").Range("AC4").Text
Brand2 = Sheets("Extract").Range("AC5").Text
Brand3 = Sheets("Extract").Range("AC6").Text
Brand4 = Sheets("Extract").Range("AC7").Text
Brand5 = Sheets("Extract").Range("AC8").Text
Brand6 = Sheets("Extract").Range("AC9").Text
Brand7 = Sheets("Extract").Range("AC10").Text
Brand8 = Sheets("Extract").Range("AC11").Text
Brand9 = Sheets("Extract").Range("AC12").Text
Brand10 = Sheets("Extract").Range("AC13").Text
Brand11 = Sheets("Extract").Range("AC14").Text
Brand12 = Sheets("Extract").Range("AC15").Text
Brand13 = Sheets("Extract").Range("AC16").Text
Brand14 = Sheets("Extract").Range("AC17").Text
Brand15 = Sheets("Extract").Range("AC18").Text
If Worksheets("Extract").Range("AC4").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC4").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 135, 110, 110).Select
Selection.Formula = "=Extract!AD4" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 32, 255) 'bleu foncé -1-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
If Worksheets("Extract").Range("AC5").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC5").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 155, 110, 110).Select
Selection.Formula = "=Extract!AD5" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 64) 'rouge -2-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
If Worksheets("Extract").Range("AC6").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC6").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 175, 110, 110).Select
Selection.Formula = "=Extract!AD6" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(30, 120, 30) 'vert foncé -3-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
' etc etc jusqu'à Range AC18 puis
SendKeys "{ESC}"
Range("L6").Select
End Sub
J'ai joint une copie d'écran; je souhaite que dans ma légende, la police de l'intitulé soit de la même couleur que la couleur du fond de la cellule où se trouve l'intitulé, dans la Col AC, de la ligne 4 à une variable. La Col AD sert de référence uniquement (car au lancement de la macro la Col AC n'a pas de couleurs) et j'ai le code RGB en Col AE.
J'ai écrit le code ainsi, parce que je ne sait pas comment placer l'intitulé 2, 3, 4, etc. à chaque fois 20 pouces plus bas. Je pense qu'il faudrait une deuxième variable. Je l'ai fait manuellement en changent le nbre rouge dans (ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 135, 110, 110).Select.
J'espère que vous pourrez m'aider. MERCI à vous.
Sub Legende()
'Dim Brand1 As String
Dim TotalBrands As Integer
TotalBrands = LigneFin = Range("AC" & Rows.Count).End(xlUp).Row
Dim Brand1 As String
Dim Brand2 As String
Dim Brand3 As String
Dim Brand4 As String
Dim Brand5 As String
Dim Brand6 As String
Dim Brand7 As String
Dim Brand8 As String
Dim Brand9 As String
Dim Brand10 As String
Dim Brand11 As String
Dim Brand12 As String
Dim Brand13 As String
Dim Brand14 As String
Dim Brand15 As String
Dim Brand16 As String
Dim Marque As String
Brand1 = Sheets("Extract").Range("AC4").Text
Brand2 = Sheets("Extract").Range("AC5").Text
Brand3 = Sheets("Extract").Range("AC6").Text
Brand4 = Sheets("Extract").Range("AC7").Text
Brand5 = Sheets("Extract").Range("AC8").Text
Brand6 = Sheets("Extract").Range("AC9").Text
Brand7 = Sheets("Extract").Range("AC10").Text
Brand8 = Sheets("Extract").Range("AC11").Text
Brand9 = Sheets("Extract").Range("AC12").Text
Brand10 = Sheets("Extract").Range("AC13").Text
Brand11 = Sheets("Extract").Range("AC14").Text
Brand12 = Sheets("Extract").Range("AC15").Text
Brand13 = Sheets("Extract").Range("AC16").Text
Brand14 = Sheets("Extract").Range("AC17").Text
Brand15 = Sheets("Extract").Range("AC18").Text
If Worksheets("Extract").Range("AC4").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC4").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 135, 110, 110).Select
Selection.Formula = "=Extract!AD4" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 32, 255) 'bleu foncé -1-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
If Worksheets("Extract").Range("AC5").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC5").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 155, 110, 110).Select
Selection.Formula = "=Extract!AD5" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 64) 'rouge -2-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
If Worksheets("Extract").Range("AC6").Value = "" Then Exit Sub
If Worksheets("Extract").Range("AC6").Value <> "" Then ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 173, 175, 110, 110).Select
Selection.Formula = "=Extract!AD6" '"=Extract!T4" CHANGER LA CELLULE
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(30, 120, 30) 'vert foncé -3-
.Transparency = 0
.Solid
With Selection.ShapeRange.TextFrame2.TextRange.Characters(1, 1).Font
.Bold = msoTrue
.NameComplexScript = "Calibri"
End With
End With
' etc etc jusqu'à Range AC18 puis
SendKeys "{ESC}"
Range("L6").Select
End Sub