Bonjour à tous,
J'ai récemment appris comment passer des arguments optionnels ou non à une procédure.
Toutefois je n'ai été confronté à l'appel de ce type de procédure que pour le passage des paramètres de graphiques.
Ici je voudrais savoir comment à chaque appel de la procédure pouvoir à la fois transmettre les paramètres du graphique à créer tout en passant la ou les plage(s) devant alimenter l'argument RowSource d'une ListeBox qui irait chercher systématiquement ses données dans un Bilan, Compte de résultats et une série de ratios (Feuille 3). Graphiques et données financières apparaissant tous en Feulle 1.
En annexe je fourni un document .pdf se composant à la fois de la feuille 1 sur laquelle on peut voir que j'ai appelé le graphique Key Financials et de la feuille 3 dans laquelle se trouve les bilan, compte de résultat et les ratios.
Pour enfoncer le clou je précise donc qu'IDEALEMENT j'aimerais accompagner mon graphique d'une fenêtre affichant les données financières dudit graphique. Cela aide mieux à l'analyse selon moi.
D'avance merci de votre temps et patience.
Ricardo.
PS Ci-dessous les deux procédures clés de ma requête. Celle appelant le graphique Key Financial. Ansi que celle, Chart_PL_Analysis, recevant les arguments et dans laquelle devrait apparaître le code pour l'affichage de la ListBox.
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 Private Sub BTNPLAnalysisRatiosMenuKF_Click() Dim PlageF As Variant Dim Plage1 As Range Dim Plage2 As Range Dim Plage3 As Range Dim Plage4 As Range Dim Plage5 As Range Dim Etiquette1 As Variant Dim Etiquette2 As Variant Dim Etiquette3 As Variant Dim Etiquette4 As Variant Dim Etiquette5 As Variant Dim ChartTitleA As String Dim ChartTypeA As Variant Dim ChartNameA As Variant ChartTypeA = xlColumnClustered ChartTitleA = "Key Financials" ChartNameA = "Key Financials" Set Plage1 = Worksheets(1).Range("I35:K35") Set Plage2 = Worksheets(1).Range("I37:K37") Set Plage3 = Worksheets(1).Range("I40:K40") Set Plage4 = Worksheets(1).Range("I42:K42") Set Plage5 = Worksheets(1).Range("I44:k44") Etiquette1 = Worksheets(1).Range("G35") Etiquette2 = Worksheets(1).Range("G37") Etiquette3 = Worksheets(1).Range("G40") Etiquette4 = Worksheets(1).Range("G42") Etiquette5 = Worksheets(1).Range("G44") Call Chart_PL_Analysis(ChartNameA, ChartTypeA, ChartTitleA, Plage1, Etiquette1, Etiquette2, Etiquette3, Etiquette4, Etiquette5, Plage2, Plage3, Plage4, Plage5) End Sub
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 Private Sub Chart_PL_Analysis(CharTNamePLA As Variant, ChartTypePLA As Variant, ChartTitlePLA As String, Plage1 As Range, Optional Etiquette1 As Variant, Optional Etiquette2 As Variant, Optional Etiquette3 As Variant, Optional Etiquette4 As Variant, Optional Etiquette5 As Variant, Optional Plage2 As Variant, Optional Plage3 As Variant, Optional Plage4 As Variant, Optional Plage5 As Variant) Dim Plage As Range Dim Mon_Graphique As Shape Dim Ma_Feuille As Worksheet On Error Resume Next Set Plage = Plage1 If Not IsMissing(Plage2) Then Set Plage = Union(Plage, Plage2) If Not IsMissing(Plage3) Then Set Plage = Union(Plage, Plage3) If Not IsMissing(Plage4) Then Set Plage = Union(Plage, Plage4) If Not IsMissing(Plage5) Then Set Plage = Union(Plage, Plage5) Set Ma_Feuille = ThisWorkbook.Worksheets(1) Set Mon_Graphique = Ma_Feuille.Shapes.AddChart With Mon_Graphique .Top = Range("e12").Top .Left = Range("e12").Left .Height = Range("e12:h28").Height .Width = Range("e12:h28").Width .Name = CharTNamePLA With .Chart .SetSourceData Plage, xlRows .SeriesCollection(1).XValues = "='Balance Sh. and P&L'!$D$7:$F$7" .SeriesCollection(1).Name = Etiquette1 .SeriesCollection(2).Name = Etiquette2 .SeriesCollection(3).Name = Etiquette3 .SeriesCollection(4).Name = Etiquette4 .SeriesCollection(5).Name = Etiquette5 .ChartType = ChartTypePLA .HasTitle = True .ChartTitle.Text = ChartTitlePLA End With End With Set Ma_Feuille = Nothing Set Mon_Graphique = Nothing Set Plage = Nothing End Sub
Partager