Liste choix pas pris en content par une macro
Résolu
ImiS
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour le forum,
J'ai une petite question car j'ai un petit problème mais qui me fait perdre un temps fou car je n'arrives pas à trouver mon erreur. J'ai définis des "noms" de liste mais ils ne sont pas pris en compte dans cette macro:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Sheets("feuil6").Cells(cptr + 13, col)
Next
End Sub
Merci d'avance
J'ai une petite question car j'ai un petit problème mais qui me fait perdre un temps fou car je n'arrives pas à trouver mon erreur. J'ai définis des "noms" de liste mais ils ne sont pas pris en compte dans cette macro:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Sheets("feuil6").Cells(cptr + 13, col)
Next
End Sub
Merci d'avance
A voir également:
- Liste choix pas pris en content par une macro
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
7 réponses
Bonjour,
Pas possible de tester ta macro comme ça, sans d'autre renseignement.
Toutefois, tu met ton code dans l'événement Change du Combo, mais cet événement n'est généré que si l'on écrit dans la fenêtre du combo et en voyant ta macro dés qu'ont tape quelque chose tu le bloque.
Ton code devrait se trouver dans l'événement Click...
Je pense que ça irait déja mieux.
A+
Pas possible de tester ta macro comme ça, sans d'autre renseignement.
Toutefois, tu met ton code dans l'événement Change du Combo, mais cet événement n'est généré que si l'on écrit dans la fenêtre du combo et en voyant ta macro dés qu'ont tape quelque chose tu le bloque.
Ton code devrait se trouver dans l'événement Click...
Private Sub ComboBox1_Click()
Je pense que ça irait déja mieux.
A+
Bonjour Lermite222,
Mon problème n'est pas le faite que le code marche pas c'est juste qu'il ne prends pas en compte des noms de liste que j'ai crée comme ça: Insertion>Nom>Définir et qui se situe sur la Feuil6!
Je pense qu'il faudrait rajouter une ligne disant qu'il faut activer les "nom" de la feuil6 comme ça à la ligne suivante:
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
il sélectionne bien la liste "CVC3 et non le mots "CVC"
je poste mon code au complet:
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
nbre = Application.CountA(Range("element")) - 1
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
End Sub
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
Merci d'avance Lermitte222
Mon problème n'est pas le faite que le code marche pas c'est juste qu'il ne prends pas en compte des noms de liste que j'ai crée comme ça: Insertion>Nom>Définir et qui se situe sur la Feuil6!
Je pense qu'il faudrait rajouter une ligne disant qu'il faut activer les "nom" de la feuil6 comme ça à la ligne suivante:
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
il sélectionne bien la liste "CVC3 et non le mots "CVC"
je poste mon code au complet:
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
nbre = Application.CountA(Range("element")) - 1
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
End Sub
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
Merci d'avance Lermitte222
nbre = Application.CountA(Range("element")) - 1
je parvient pas à tester parce que je ne sais pas ce qu'il y a dans element ?
Bon, j'ai tester mais tout me semble fonctionner parfaitement !
Quand je clic sur CVC c'est bien CVC que j'ai et le nombre de cellules correspond aussi.
idem pour la colonne..
Eventuellement mettre ton classeur sur Cjoint.com ?
A+
Quand je clic sur CVC c'est bien CVC que j'ai et le nombre de cellules correspond aussi.
idem pour la colonne..
Eventuellement mettre ton classeur sur Cjoint.com ?
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
par E-mail ? mais alors tu doit te faire membre et me communiquer ton adresse par MP.
Mais je ne comprend pas ta remarque ... il sélectionne bien la liste "CVC3 et non le mots "CVC"
c'est quoi CVC3 ?
Mais je ne comprend pas ta remarque ... il sélectionne bien la liste "CVC3 et non le mots "CVC"
c'est quoi CVC3 ?
Bon j'ai bon retourner le problème dans tous les sens rien à faire, tenez moi au courant si vous avez trouvé quelque chose.
Bon j'ai trouvé mon problème il se trouve ici:
Dans Sub ComcboBox Change()
col = Choose(choix, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Sheets("feuil6").Cells(cptr + 8, col)
Déjà je ne sais pas compter car N=14 et non 11
ensuite dans Cells(le chiffre après cptr est = à la ligne d'ou on commence ^^)
Donc voilà problème résolu et je tiens à remercier Lermitte222, Bidouilleur_R pour l'aide apporté ainsi que michel_m qui est à l'origine de ce code.
Merci à vous tous qui rendez de grands services à des novices comme nous.
Maxence et ImiS
Dans Sub ComcboBox Change()
col = Choose(choix, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Sheets("feuil6").Cells(cptr + 8, col)
Déjà je ne sais pas compter car N=14 et non 11
ensuite dans Cells(le chiffre après cptr est = à la ligne d'ou on commence ^^)
Donc voilà problème résolu et je tiens à remercier Lermitte222, Bidouilleur_R pour l'aide apporté ainsi que michel_m qui est à l'origine de ce code.
Merci à vous tous qui rendez de grands services à des novices comme nous.
Maxence et ImiS
Re,
Je pensais bien que c'était une erreur de ce genre, mais peut-être une autre façon de faire !
A +
Je pensais bien que c'était une erreur de ce genre, mais peut-être une autre façon de faire !
Dim NoAction As Boolean Private Sub ComboBox2_Change() If NoAction Then Exit Sub End Sub Private Sub UserForm_Initialize() Dim cptr As Byte cptr = 14 With Sheets("feuil6") While .Cells(7, cptr) <> "" ComboBox1.AddItem .Cells(7, cptr) cptr = cptr + 1 Wend End With ComboBox1.ListIndex = 0 End Sub Private Sub ComboBox1_Change() Dim cptr As Byte, col As Byte ComboBox2.Clear col = ComboBox1.ListIndex + 14 cptr = 8 With Sheets("feuil6") While .Cells(cptr, col) <> "" ComboBox2.AddItem .Cells(cptr, col) cptr = cptr + 1 Wend End With NoAction = True ComboBox2.ListIndex = 0 NoAction = False End Sub
A +