[VBA] ComboBox liées par contrainte

Signaler
Messages postés
1
Date d'inscription
mardi 17 mai 2011
Statut
Membre
Dernière intervention
17 mai 2011
-
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
4
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