Bonjour Chers Tous,
Avant tout bonne année et bonne santée sont ce que je vous souhaite du fond du coeur.
Bon mon souci.
Toujours dans le cadre du développement d'une application en Credit Risk Management je reviens cette fois-ci, non plus à propos des menus déroulants, mais pour le passage de paramètres à une procédure.
Dans la procédure ci-dessous j'attribue à chacune des variables la valeur que je désire voire être transmise en faisant Call Chart_PL_Analysis
Dans la copie d'écran fournie en annexe vous constaterez que je propose un Menu déroulant via lequel on peut choisis un graphique pour les Assets, un graphique pour les Liabilities, etc, etc.
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 Private Sub BTNPLAnalysisLiabilities_Click() Dim Plage1 As Range Dim Plage2 As Range Dim Plage3 As Range Dim ChartTitleA As String Dim ChartTypeA As Variant ChartTypeA = xlColumnClustered ChartTitleA = "Liabilitities" Set Plage1 = Worksheets(3).Range("A23:F23") Set Plage2 = Worksheets(3).Range("A28:F28") Set Plage3 = Worksheets(3).Range("A30:F30") Call Chart_PL_Analysis(Plage1, Plage2, Plage3, ChartTypeA, ChartTitleA) End Sub
Mon souci a été que dans certains cas je n'ai qu'une plage de cellules à transférer dans d'autres cas deux voire trois plages.
Dans le graphique (Graphique Liabilities) que je vous ai joint j'avais effectivement trois plages à transmettre: Plage 1 = Capital and Reserves, Plage 2 = LT Liabilities et Plage 3= ST Liabilities.
Mais si je prends la procédure (Graphique Assets) ci-dessous je n'ai à transférer en réalité que deux plages de cellules. Les Plages 1 et 2. La Plage 3se voit attribuer une ligne vide de données. Pourquoi ? Parce que je ne sais comment dire que le passage de paramètres n'est pas toujours de x valeurs mais des fois de x mais aussi de y voire z....valeurs
Dans la procédure ci-dessous (celle qui crée le le graphique) je propose les trois plages comme valeurs entrantes.
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 Private Sub BTNPLAnalysisAssets_click() Dim Plage1 As Range Dim Plage2 As Range Dim Plage3 As Range Dim ChartTitleA As String Dim ChartTypeA As Variant ChartTypeA = xlColumnClustered ChartTitleA = "Assets" Set Plage1 = Worksheets(3).Range("A8:F8") Set Plage2 = Worksheets(3).Range("A14:F14") Set Plage3 = Worksheets(3).Range("A21:F21") Call Chart_PL_Analysis(Plage1, Plage2, Plage3, ChartTypeA, ChartTitleA) End Sub
Ma question est la suivante: Comment faire en sorte pour que la procédure créant le graphique appelée par toutes mes procédures d'analyse de bilan fonctionne sachant que les plages de valeurs fournies seront différentes en nombre ?
Question annexe. J'ai tenté d'incorporer les dates dans mes graphiques mais n'ai pas trop su comment faire. Sur base du bilan tel que joint pourriez-vous me donner une idée ?
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 Private Sub Chart_PL_Analysis(Plage1 As Range, Plage2 As Range, Plage3 As Range, ChartTypeS As Variant, ChartTitleS As String) Dim Mon_Graphique As Shape Dim Ma_Feuille As Worksheet 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 = "Ratio's Chart" With .Chart .SetSourceData Union(Plage1, Plage2, Plage3), xlRows .ChartType = ChartTypeS .HasTitle = True .ChartTitle.Text = ChartTitleS End With End With End Sub
Partager