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
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
A voir également:

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
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...
    Private Sub ComboBox1_Click() 

Je pense que ça irait déja mieux.
A+
0
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
0
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
nbre = Application.CountA(Range("element")) - 1 


je parvient pas à tester parce que je ne sais pas ce qu'il y a dans element ?
0
élément est juste une liste qui récapitule les titres de mes listes soit:

CVC PLomberie SO > element
remplacement
destruction
0
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
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+
0
j'aimerais bien mais je ne peux pas car de mon poste cijoint ne fonctionne pas et je n'ai que ce poste là en ma possesion mais s'il y à un autre moyen pas de problème pour moi.
0

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
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 ?
0
oups le 3=" donc "CVC" et non "CVC3
0
ImiS > ImiS
21 nov. 2008 à 14:48
me voilà mambre comment vous faire parvenir par MP mon adresse ainsi que mon fichier
0
ImiS > ImiS
21 nov. 2008 à 15:12
Bon incroyable mais vrai cijoint a fonctionné donc voilà le lien:

http://www.cijoint.fr/cjlink.php?file=cj200811/cijojy6UpC.xls

Merci d'avance
0
Bon j'ai bon retourner le problème dans tous les sens rien à faire, tenez moi au courant si vous avez trouvé quelque chose.
0
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
0
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
Re,
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 +
0