Bonjour, je suis débutant en VBA sous Excel 2007 et je tente de faire une boucle pour ma macro.
Pour ne pas à avoir à copier mon code 70 fois, je voudrais faire une boucle qui me permet de faire la même action 70 fois par exemple, mais toujours un groupe de cellules plus bas.
Par exemple, la première série du graphique aura le groupe de cellule F7;G7;H7;I7, la deuxième série aura le groupe de cellule F8;G8;H8;I8, et ainsi de suite jusqu'à ce que je puisse me rendre à F77;G77;H77;I77
Donc voilà, c'est dans le but de me construire un graphique de nuage de points automatiquement tout en lui donnant une mise en forme conditionnelle selon chacune des cellules de séries.
Je ne sais pas si j'ai été assez clair, mais voici à quoi ressemble mon code jusqu'à maintenant.
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 'Création de la série 2 du nuage de points ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = "='Sil_am_tous - Data'!$G$7" ActiveChart.SeriesCollection(2).XValues = "='Sil_am_tous - Data'!$H$7" ActiveChart.SeriesCollection(2).Values = "='Sil_am_tous - Data'!$I$7" ActiveChart.SeriesCollection(2).Select 'si la cellule à gauche du titre de ma série est tel mot, alors fait ça, sinon fait ça If ActiveSheet.Range("F7") = "Commercialisé" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 16750848 .MarkerBackgroundColor = 16750848 End With ElseIf ActiveSheet.Range("F7") = "Concurrence" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 3 .MarkerBackgroundColor = 3 End With ElseIf ActiveSheet.Range("F7") = "Non commercialisé" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 39168 .MarkerBackgroundColor = 39168 End With Else With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 1 .MarkerBackgroundColor = 1 End With End If 'Création de la série 3 du nuage de points ActiveChart.ChartArea.Select ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(3).Name = "='Sil_am_tous - Data'!$G$8" ActiveChart.SeriesCollection(3).XValues = "='Sil_am_tous - Data'!$H$8" ActiveChart.SeriesCollection(3).Values = "='Sil_am_tous - Data'!$I$8" ActiveChart.SeriesCollection(3).Select 'si la cellule à gauche du titre de ma série est tel mot, alors fait ça, sinon fait ça If ActiveSheet.Range("F8") = "Commercialisé" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 16750848 .MarkerBackgroundColor = 16750848 End With ElseIf ActiveSheet.Range("F8") = "Concurrence" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 3 .MarkerBackgroundColor = 3 End With ElseIf ActiveSheet.Range("F8") = "Non commercialisé" Then With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 39168 .MarkerBackgroundColor = 39168 End With Else With Selection .MarkerStyle = 8 .MarkerSize = 10 .MarkerForegroundColor = 1 .MarkerBackgroundColor = 1 End With End If
Partager