Re: => DEMO UserForm Financier sur Multi Compte et Multi-Currencies
Re Bonjour Footix, le Forum
Pour ceux et celles qui essaient de suivre cette histoire, Footix est revenu dans un autre Fil Lien supprimé ce qui est absolument déconseillé de faire !!!
Bon enfin donc la question :
j'ai repris la procédure pour comprendre le fonctionnement et j'en arrive à la list box 1 où je t'avoue avoir un peu de mal à comprendre le cheminement.
Voici la Procédure qui pose problème de Compréhension :
Private Sub ListBox1_Click()
Dim Item As Variant, Container As Variant
Dim TabCur() As String
Dim x As Long, i As Long
Me.ListBox2.Clear
For x = 1 To 4
Me.Controls("TextBox" & x) = ""
Next
For Each Item In ColAccCur
Container = Split(Item, "#")
ReDim Preserve TabCur(2, x)
TabCur(0, x) = Container(0)
TabCur(1, x) = Container(1)
x = x + 1
Next
For i = 0 To UBound(TabCur, 2)
If TabCur(0, i) = Me.ListBox1 Then
Me.ListBox2.AddItem TabCur(1, i)
End If
Next
End Sub
Ce qu'il faut savoir c'est que : les Variable "TabBdd" (Array) et "ColAccCur" (Collection) sont déclarées publiquement au niveau du Private Module, et initialisée au préalable lors de l'initialisation du UserForm.
Donc dans "ColAccCur " j'ai une Collection en clef unique d'enregistrement de Accounts & Currencies... Puis, dans une boucle pour chacun des Items de cette Collection justaposée avec la Function Split, je sépare ces enregistrements et par un Redim Preserve je construis une Dynamic Array "TabCur" des Collections ainsi séparées....
Pour finir par une boucle sur le contenue de ma Dynamic Array j'incrémente les donnée dans la ListBox....
Elémentaire mon cher Watson !!
Non je sais c'est assez hardu à comprendre, mais ça l'est encore plus à expliquer...
En language des objects par une VBE local windows ça donne :
ColAccCur contient des enregistrement :
401213#USD
401236#EUR
401236#USD
etc etc etc tous en clef unique
Chacun est un Item dans ma Boucle
Chaque Item est Splité au caractère "#" ce qui donne :
Container(0) contient => 402123
Container(1) contient => USD
J'envoie dans ma Dynamic Array "TabCur" sur Deux Colonnes :
Colonne 1 = TabCur(0,x) Contient => 40213
Colonne 2 = TabCur(1,x) Contient => USD
Puis vient la boucle d'analyse en scruttant tous les Items de ma Dynamic Array ...
Si l'Item cliqué en ListBox1 est égale au TabCur(0,i) alors
La ListBox 2 s'incrémete du contenu de TabCur(1,i)...
Ouf !!!
Question de passage d'examen si vous avez suivi !!!
Quel est le Contenu de TabCur(1,i) ???????
Réponse A => Un Numéro de Compte
Réponse B => Le Numéro du Prochain Loto
Réponse C => Le Numéro du Compte à Découvert
Réponse D => La Currency à découvert sur le Compte
Réponse E => La Clef Unique de la Currency
Réponse F => Le Retour des Currencies Disponibles sur le Compte
Réponse G => La Clef unique de la porte de ma cave
Bon et bien si vous avez autre chose que F, je vous conseille de laisser de coté les Tableaux Dynamique et Autres Collections !! lol
Bon Aprèm
@+Thierry
PS c'est pas du "Full-Comments" mais c'est aussi long à faire !! lol