Option Explicit
Private O As Worksheet 'décalre la variable O (Onglet)
Private TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Private I As Integer 'décalre la variable I (Incrément)
Private Sub UserForm_Initialize()
Set O = Worksheets("Base") 'définit l'onglet O
TV = O.Range("B8").CurrentRegion 'définit le tableau des valeur TV
Me.TxtSolde = O.Range("E4").Value
Me.TxtSolde.Text = Format(Me.TxtSolde.Text, "#,##0.00")
End Sub
Private Sub OpCredit_Click()
Dim D As Object 'déclare la variable D (Dictionnaire)
Me.ComboBox1.Clear 'vide la ComboBox1
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
If OpCredit = True Then 'si l'option [Crédit] est choisie
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeur TV
'si la donnée ligne I colonne 3 de TV (=> Colonne D) ne'est pas vide,
'alimente le dictionnaire D avec la donnée en colonne 2 de TV (=> Colonne C)
If TV(I, 3) <> "" Then D(TV(I, 2)) = ""
Next I 'prochaine ligne de la boucle
End If 'fin de la condition
If D.Count > 1 Then Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec la liste des éléments du dictionnaire D sans doublon
End Sub
Private Sub OpDebit_Click()
Dim D As Object 'déclare la variable D (Dictionnaire)
Me.ComboBox1.Clear 'vide la ComboBox1
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
If OpDebit = True Then 'si l'option [Débit] est choisie
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeur TV
'si la donnée ligne I colonne 4 de TV (=> Colonne E) ne'est pas vide,
'alimente le dictionnaire D avec la donnée en colonne 2 de TV (=> Colonne C)
If TV(I, 4) <> "" Then D(TV(I, 2)) = ""
Next I 'prochaine ligne de la boucle
End If 'fin de la condition
If D.Count > 1 Then Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec la liste des éléments du dictionnaire D sans doublon
End Sub
Private Sub CmdCancel_Click()
Unload Me
End Sub