Liste choix pas pris en content par une macro
Résolu/Fermé
ImiS
-
21 nov. 2008 à 10:26
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 22 nov. 2008 à 06:09
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 22 nov. 2008 à 06:09
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
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
7 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 nov. 2008 à 12:42
21 nov. 2008 à 12:42
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
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 nov. 2008 à 13:44
21 nov. 2008 à 13:44
nbre = Application.CountA(Range("element")) - 1
je parvient pas à tester parce que je ne sais pas ce qu'il y a dans element ?
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 nov. 2008 à 14:05
21 nov. 2008 à 14:05
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
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 nov. 2008 à 14:41
21 nov. 2008 à 14:41
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
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
22 nov. 2008 à 06:09
22 nov. 2008 à 06:09
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 +