Bonjour à tous,
Je suis en train de réaliser des tests avant d'implémenter un formulaire dans classeur excel avec Macro.
Dans les grandes lignes voici le fonctionnement du formulaire :
J'ai 2 ComboBox :
1) La premier qui invite l'utilisateur à renseigner une AFFECTATION
2) La deuxième propose les comptes disponibles en fonction de l'affectation précédemment choisie
J'ai également deux étiquettes (type "Labels") qui afficheront des numéros de comptes en fonction du choisi dans la deuxième ComboBox.
En sachant que :
- l'essentiel de mes données sont inclus dans un onglet à part
- 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
Mes problèmes sont les suivants :
- Je n'arrive pas à afficher les comptes pour tous les choix
- 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...
Je suis en train de réaliser des tests avant d'implémenter un formulaire dans classeur excel avec Macro.
Dans les grandes lignes voici le fonctionnement du formulaire :
J'ai 2 ComboBox :
1) La premier qui invite l'utilisateur à renseigner une AFFECTATION
2) La deuxième propose les comptes disponibles en fonction de l'affectation précédemment choisie
J'ai également deux étiquettes (type "Labels") qui afficheront des numéros de comptes en fonction du choisi dans la deuxième ComboBox.
En sachant que :
- l'essentiel de mes données sont inclus dans un onglet à part
- 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
VB:
Option Explicit
Option Base 1
Sub Lancement()
Form_Saisie.Show
End Sub
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
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 Sub
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
Mes problèmes sont les suivants :
- Je n'arrive pas à afficher les comptes pour tous les choix
- 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...