Bonjour à tous,
Je me permets de solliciter votre aide et vos avis sur l'utilisation de ComboBox liées.
Dans les grandes lignes voici le fonctionnement de mon formulaire :
J'ai 2 ComboBox :
1) La première invite l'utilisateur à renseigner une AFFECTATION
2) La deuxième propose les comptes disponibles en fonction de l'affectation précédemment choisie
Enfin le choix de l'élément selectionné dans la ComboBox2 doit me permettre d'afficher les codes comptables.
Pour cela :
1) je récupère le contenu des valeurs de cet onglet répondant à un "code AFFECTATION" précédemment généré par l'utilisation de la ComboBox1 (1-2-3)
2) je remplie un tableau à deux dimensions avec les éléments répondants au critère du code AFFECTATION
3) J'affiche les codes comptables dont le numéro de ligne correspond à celui selectionné dans la ComboBox2.
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 Sub PopulateComboBoxSaisie1() Dim TabCpt1() As String Dim n, i As Integer Form_Saisie.ComboBox1.Clear n = Range("AFFECTATIONS").Rows.Count ReDim TabCpt1(n) As String For i = 1 To n TabCpt1(i) = Range("AFFECTATIONS").Cells(i, 1) Form_Saisie.ComboBox1.AddItem TabCpt1(i) Next i Form_Saisie.ComboBox1.Text = TabCpt1(1) 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 Sub PopulateComboBoxSaisie2() Dim NbLigne, NbCol, AffectType, i, j, CompteurOccurance As Integer Form_Saisie.ComboBox2.Clear AffectType = Form_Saisie.ComboBox1.ListIndex + 1 MsgBox (AffectType) NbLigne = Range("PLAN_DE_COMPTES").End(xlDown).Row - 1 NbCol = 5 ReDim TabCptFull(NbLigne, NbCol) As Variant For i = 1 To NbLigne If Range("PLAN_DE_COMPTES").Cells(i, 2) = AffectType Then For j = 1 To NbCol TabCptFull(i, j) = Range("PLAN_DE_COMPTES").Cells(i, j) Next j Form_Saisie.ComboBox2.AddItem Range("PLAN_DE_COMPTES").Cells(i, 3) End If Next i End SubMes problèmes sont les suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub RecupCodeComptable() 'Dim NumOccur As Integer -> publiques 'Dim CompteGen, CompteAux As String -> en variables publiques NumOccur = Form_Saisie.ComboBox2.ListIndex + 1 CompteGen = TabCptFull(NumOccur, 4) CompteAux = TabCptFull(NumOccur, 5) Form_Saisie.Label13.Caption = CompteAux Form_Saisie.Label16.Caption = CompteGen End Sub
- Je n'arrive pas à afficher certains résultats (les premiers éléments de la liste fonctionne mais pas les derniers...)
- J'ai de temps en temps une erreur d'exécution 9 - "l'indice n'appartient pas à la sélection" car j'ai l'impression qu'un listIndex d'une des ComboBox passe à -1 ! ce qui me parait étrange vu qu'il est censé commencer à 0....
ci-joint le fichier complet le cas échéant
Merci d'avance pour votre aide ! Cela fait quelques soirs que je patine...
Bien cordialement
Partager