[VBA] ComboBox liées par contrainte

cs_marion56 Messages postés 1 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 17 mai 2011 - 17 mai 2011 à 16:02
 Utilisateur anonyme - 23 mai 2011 à 13:57
Bonjour, j'utilise dans mon application plusieurs ComboBox où leur valeur changent en fonction du choix de la précédente.

Par exemple si dans ma ComboBox 1 je choisi "france" j'aurais comme choix dans ma ComboBox 2 "Paris", "Marseille"

Si dans la ComboBox 1 je prend Italie j'aurais comme choix dans la deuxième

"Rome", "Naples" ect,..

voici mon code, j'arrive facilement à gérer mes choix mais je piétine au niveau de l'ajout des Item car si je sélectionne ma combobox et que je clic à côté de celle ci et que je la resélectionne elle m'affiche plusieurs fois mes items.
Sub ComboBox1_DropButtonClick()
Dim ActionFaite As Boolean
       
           If Feuil1.ComboBox1.Value = "" Then 'si la valeur de la liste bâtiment n'est pas nulle alors'

Feuil1.ComboBox1.AddItem "B1"
Feuil1.ComboBox1.AddItem "B2"
Feuil1.ComboBox1.AddItem "B25"
Feuil1.ComboBox1.AddItem "E25"
                
    End If
    
      Feuil1.ComboBox2.Clear ' Nettoyage des résultats liste ligne de prod'
      Feuil1.ComboBox3.Clear ' Nettoyage des résultats liste équipements'
  
               
End Sub


Sub ComboBox2_DropButtonClick()
'If Feuil1.ComboBox2.Value <> "" Then Feuil1.ComboBox2.Clear







If Feuil1.ComboBox1.Text "B1" And Feuil1.ComboBox2.Value "" Then
            Feuil1.ComboBox2.AddItem "AMI_DMI"
            Feuil1.ComboBox2.AddItem "B32"
            Feuil1.ComboBox2.AddItem "B43"
            Feuil1.ComboBox2.AddItem "B45"
            Feuil1.ComboBox2.AddItem "B54"
            Feuil1.ComboBox2.AddItem "B76"
            
            
            End If
            
 If Feuil1.ComboBox1.Text "B2" And Feuil1.ComboBox2.Value "" Then
            Feuil1.ComboBox2.AddItem "B276"
            Feuil1.ComboBox2.AddItem "E245"
            
            End If
            
    Feuil1.ComboBox3.Clear
    
End Sub


Sub ComboBox3_DropButtonClick()



If Feuil1.ComboBox2.Text "B76" And Feuil1.ComboBox3.Value "" Then
            Feuil1.ComboBox3.AddItem "C08100"
            Feuil1.ComboBox3.AddItem "ES08500"
            Feuil1.ComboBox3.AddItem "F08400"
            Feuil1.ComboBox3.AddItem "G8000"
            Feuil1.ComboBox3.AddItem "G08200"
            Feuil1.ComboBox3.AddItem "G08300"
            Feuil1.ComboBox3.AddItem "J08010"
            
            End If
            
 
    
End Sub






Bonne journée.

Marion.F

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 mai 2011 à 19:39
Salut

Normal.
Dans l'évènement _DropButtonClick de cette Combo, tu ajoutes des items à cette même Combo.
Il t'obéit.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Utilisateur anonyme
23 mai 2011 à 13:57
Bonjour,
Je suis d'accord avec Jack, le probleme est que si tu "dropdown" ta combobox 3 fois alors tu aura 3 fois les valeurs dans ta box.

Il faut que tu vides ta combo avant de la remplir...
Sub ComboBox3_DropButtonClick()
  Feuil1.ComboBox3.Clear

  If Feuil1.ComboBox2.Text "B76" And Feuil1.ComboBox3.Value "" Then
    Feuil1.ComboBox3.AddItem "C08100"
    Feuil1.ComboBox3.AddItem "ES08500"
    Feuil1.ComboBox3.AddItem "F08400"
    Feuil1.ComboBox3.AddItem "G8000"
    Feuil1.ComboBox3.AddItem "G08200"
    Feuil1.ComboBox3.AddItem "G08300"
    Feuil1.ComboBox3.AddItem "J08010"
  End If
End Sub
0
Rejoignez-nous