Alors c'est un peu compliqué ma question, on va voir se que ça va donner :
J'ai un tableau avec des valeurs
J'ai un premier module : function qui permet de sélectionner une plage de valeur
J'ai un UserForm1 avec des listes déroulantes et des bouton pour pouvoir faire des choix qui me permettront de sélectionner une plage bien précise de mon tableau. (je fais appel a ma fonction si dessus lorsque j'ai fini ma sélection dans mes listes déroulantes.)
J'ai un module où je stock mes functions graphiques, que je vais créer à la suite de mes sélection grâce à la plage sélectionné.
J'ai un UserForm avec deux boutons : 1 qui me demande si je veux mon graphique en baton, et un autre si je veux un graphique en camenber.
Mais c'est là le soucis c'est que je ne sais pas faire pour recupérer la valeur de ma plage pour créer mes graphiques. Jai plage dans SetSourceData:=Plage qui est toujours à vide. Normal car je lui dis pas où prendre les valeurs. Mais c'est ça que je n'arrive pas.
Heu là c'est l'UserForm pour faire le choix du graphique.
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 Sub GraphiqueBaton(Plage As Range) Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Plage, PlotBy:=xlColumns ActiveChart.SeriesCollection(1).Name = "=INDICATEUR!R2C4" ActiveChart.SeriesCollection(2).Name = "=INDICATEUR!R2C5" ActiveChart.SeriesCollection(3).Name = "=INDICATEUR!R2C6" ActiveChart.SeriesCollection(4).Name = "=INDICATEUR!R2C7" ActiveChart.SeriesCollection(5).Name = "=INDICATEUR!R2C8" ActiveChart.SeriesCollection(6).Name = "=INDICATEUR!R2C9" ActiveChart.SeriesCollection(7).Name = "=INDICATEUR!R2C10" ActiveChart.SeriesCollection(8).Name = "=INDICATEUR!R2C11" ActiveChart.Location Where:=xlLocationAsObject, Name:="INDICATEUR" ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False With ActiveChart.Parent .Height = 300 .Width = 500 .Top = Range("E4").Top .Left = Range("E4").Left End With End Sub Sub GraphiqueCamenber(Plage As Range) Charts.Add ActiveChart.ChartType = xlPie ActiveChart.SetSourceData Source:=Plage, _ PlotBy:=xlRows ActiveChart.SeriesCollection(1).XValues = "=INDICATEUR!R2C4:R2C11" ActiveChart.Location Where:=xlLocationAsObject, Name:="INDICATEUR" ActiveChart.HasLegend = False ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent, LegendKey _ :=False, HasLeaderLines:=True With ActiveChart.Parent .Height = 300 .Width = 500 .Top = Range("E4").Top .Left = Range("E4").Left End With End Sub
Là j'ai pas mis mes listes déroulantes mais c'est pas grave. Ya jute à savoir que je sélectionne ma plage grâce à ae2 et ae1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub CommandButton1_Click() GraphiqueBaton Plage UserForm2.Hide End Sub Sub CommandButton2_Click() GraphiqueCamenber Plage UserForm2.Hide End Sub
Voili voilou
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 Private Sub CommandButton1_Click() 'DUREE CURATIF ASTREINTE SelectionnerLignes2 Worksheets("INDICATEUR"), Worksheets("INDICATEUR").Range("ae1").Value, Worksheets("INDICATEUR").Range("ae2").Value UserForm1.Hide End Sub Private Sub CommandButton2_Click() 'DUREE PREVENTIF SelectionnerLignes3 Worksheets("INDICATEUR"), Worksheets("INDICATEUR").Range("ae1").Value, Worksheets("INDICATEUR").Range("ae2").Value UserForm1.Hide End Sub Private Sub CommandButton3_Click() 'DUREE CURATIF SEMAINE SelectionnerLignes1 Worksheets("INDICATEUR"), Worksheets("INDICATEUR").Range("ae1").Value, Worksheets("INDICATEUR").Range("ae2").Value UserForm1.Hide End Sub
Partager