Passage de paramètres à une procédure
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
Code:
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 |
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.
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
Code:
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 |
Dans la procédure ci-dessous (celle qui crée le le graphique) je propose les trois plages comme valeurs entrantes.
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:
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 |
Erreur en prenant ta procédure
Bonjour Mercatog,
J'ai mis ta procédure en lieu et place de la mienne et lorsque je clique sur le bouton Assets il me sort l'erreur suivante (copie écran annexé).
Ou est le souci ?