Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 If imbriqués dans VBA pour alimenter des combobox

JulDS

XLDnaute Nouveau
Bonjour à tous,
J'ai cherché un peu partout sur le forum une solution à mon problème, j'espère ne pas faire doublon avec un autre fil,

Je joins mon fichier mais c'est vraiment un tout début de boulot, je veux faire un test et voir si ça nous permet mes collègues et moi de mettre plus en commun notre taf, mais comme je débute ça risque de vous faire saigner les yeux ^^

Je cherche à alimenter des combobox (2, 3 et 4) avec des additems différents en fonction de la valeur saisie dans le combobox1
J'ai tenté la chose suivante sur le mon combobox1 et mon combobox2 mais la seule chose qu'il me retourne c'est du vide

With ComboBox1
.AddItem "Chiffrage / Pré étude"
.AddItem "Dessin/étude"
.AddItem "Débit"
.AddItem "Pliage"
.AddItem "Soudure"
.AddItem "Peinture"
.AddItem "Transport"
.AddItem "Pose"
End With

With ComboBox2
If ComboBox1 = "Chiffrage / Pré étude" Then
.AddItem "Arnaud"
.AddItem "Etienne"
.AddItem "Jérôme"
.AddItem "J-François"
.AddItem "Pierre"
.AddItem "Rémy"
ElseIf ComboBox1 = "Dessin/étude" Then
.AddItem "Arnaud"
.AddItem "Etienne"
.AddItem "Jérémy B"
.AddItem "Sarah"
ElseIf ComboBox1 = "Débit" Then
.AddItem "Adrien"
.AddItem "Anthony"
.AddItem "Clément"
.AddItem "Hamed"
.AddItem "Jérémy D"
.AddItem "Nicolas"
ElseIf ComboBox1 = "Pliage" Then
.AddItem "Anthony"
.AddItem "Nicolas"
.AddItem "Sébastien F"
.AddItem "Sylvain"
.AddItem "Wilfried"
ElseIf ComboBox1 = "Soudure" Then
.AddItem "Adrien"
.AddItem "Clément"
.AddItem "Hamed"
.AddItem "Romaric"
.AddItem "Sébastien"
.AddItem "Wilfried"
.AddItem "Sylvain"
.AddItem "Gaetan"
.AddItem "Théo"
.AddItem "Tudor"
.AddItem "Thomas"
.AddItem "Patrice"
ElseIf ComboBox1 = "Peinture" Then
.AddItem "Daniel"
.AddItem "Jérémy L"
.AddItem "Anthony L"
.AddItem "Mitch"
.AddItem "Ludovic"
ElseIf ComboBox1 = "Pose" Then
.AddItem "Théo"
.AddItem "Thomas"
.AddItem "Patrice"
.AddItem "Adrien"
.AddItem "Clément"
.AddItem "Hamed"
.AddItem "Romaric"
.AddItem "Sébastien"
.AddItem "Wilfried"
.AddItem "Sylvain"
.AddItem "Anthony"
.AddItem "Nicolas"
.AddItem "Tudor"
.AddItem "Gaetan"
.AddItem "Interim 1"
.AddItem "Interim 2"
.AddItem "Interim 3"
.AddItem "Sous Traitant 1"
.AddItem "Sous Traitant 2"
.AddItem "Sous Traitant 3"
End If

End With

Merci
 

Pièces jointes

  • Tableur saisie tâches v0.1.xlsm
    24.3 KB · Affichages: 6

OfficeNoob

XLDnaute Nouveau
Bonsoir Jul,

Ton code ne renvoi car tu fais une comparaison sur la valeur sélectionnée dans ton combobox et non sur le contenu de ta liste.

Perso je créerai une petite fonction qui bouclerai dans la liste et qui renverrai vrai ou faux selon qu'elle trouve une correspondance ou non.

Je ne suis malheureusement pas à mon pc ce soir mais si personne d'autre ne t'apporte la solution d'ici demain je te posterai une proposition demain soir
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Essayez cette structure :
VB:
Private Sub UserForm_Initialize()
   TextBox6.Text = "JJ/MM/AAAA"
   TextBox4.Text = "JJ/MM/AAAA"
   ComboBox1.List = Array("Chiffrage / Pré étude", "Dessin/étude", _
      "Débit", "Pliage", "Soudure", "Peinture", "Transport", "Pose")
   End Sub
Private Sub ComboBox1_Change()
   Select Case ComboBox1.ListIndex
      Case 0: ComboBox2.List = Array("Arnaud", "Etienne", _
         "Jérôme", "J-François", "Pierre", "Rémy")
      Case 1: ComboBox2.List = Array("Arnaud", "Etienne", _
         "Jérémy B", "Sarah", "Storm", "Cesma")
 '  Etc.
      End Select
   End Sub
Mais bon, je n'aurais pas fait comme ça non plus, j'aurait fait un tableau de toutes les combinaisons valides des valeurs des ComboBox et j'aurais utilisé un ComboBoxLiées pour gérer tout ça …
 

JulDS

XLDnaute Nouveau
@Dranreb C'est ce que j'avais pensé au début, je m'étais fait une page avec les données de chaque Combobox histoire de ne pas avoir à ajouter les nouveaux au code mais seulement à la liste Excel mais je ne voyais pas comment pointer sur la liste non plus avec cette solution.
Ta solution fonctionne à priori, Merci !
@ChTi160 Merci beaucoup, c'est la correction que je souhaitais faire !

Merci à tous en tous cas, ça répond bien à ma question !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…