XL 2010 Comportement ComboBox

Mettallives81

XLDnaute Nouveau
Bonjour,

Dans un contexte de ComboBox dépendant, cette commande ( ComboBox2.Value = "") m'a permis de "vider" un choix déjà fait et affiché dans le combobox2 au changement de statut dans le ComboBox1:

Private Sub comboBox1_Change()
ComboBox2.Value = ""
If ComboBox1 = "OUI" Then ComboBox2.ListFillRange = "Choix!$D$9:$D$12"
If ComboBox1 = "NON" Then ComboBox2.ListFillRange = "Choix!$D$13:$D$16"
End Sub

Et j'aimerai pouvoir faire cohabiter cette propriété (fmStyleDropDownList) au comboBox2 afin de ne pouvoir modifier le contenu du ComboBox, mais si je le fait j'ai un message "erreur d’exécution 424 : objet requis" que je n'arrive pas à résoudre...:(

Cela ressemble à un conflit entre ( ComboBox2.Value = "") dans le Sub ComboBox1_Change, et la propriété (fmStyleDropDownList) du ComboBox2...

Si vous avez une idée je suis preneur!

Bien à vous
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour crescence

Si les combos sont dans une formulaire, il faut mettre dans userform_activate()
ComboBox1 = "": ComboBox2 = ""

Ensuite

VB:
Private Sub ComboBox1_Change()
If ComboBox1 <> "" Then
Call Changer
Else
Exit Sub
End If
End Sub

Private Sub Changer()
If ComboBox1 = "OUI" Then
ComboBox2.ListFillRange = "Choix!$D$9:$D$12"
Else
ComboBox2.ListFillRange = "Choix!$D$13:$D$16"
End If
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re

Si c'est pour bloquer l'utilisation de la combobox2 , tu ajoute combobox2.Enabled = false à l'exemple que je t'ai donné. Vu que c'est des contrôles formulaire, la macro est identique. Sinon je ne comprend pas où tu veux en venir.

VB:
Private Sub ComboBox1_Change()
If ComboBox1 = "OUI" Then
ComboBox2.ListFillRange = "Choix!$D$9:$D$12"
ComboBox2.Enabled = True
Else
ComboBox2.ListFillRange = "Choix!$D$13:$D$16"
ComboBox2.Enabled = False
End If
End Sub

Si je veux faire un choix dans la combo2, d'après l'exemple que tu donne à avec la combo3, en la boquant, je suis pomme.
 
Dernière édition:

Mettallives81

XLDnaute Nouveau
Je vais tenter de reformuler le comportement voulu et ou je veux en venir car cela n'était peut-être pas assez précis (car je ne veux pas bloquer l'utilisation d'aucun ComboBox):

1 - Lorsque dans le combobox1 le "OUI" est choisi et un choix est fait dans le ComboBox 2 , un changement à "NON" du ComboBox 1 va vider automatiquement le choix et rendre vide le comboBox 2, disponible pour un nouveau choix dans une nouvelle liste (c'est exactement ce que je souhaite et actuellement ce que j'ai codé)

=> le souci c'est que les choix dans les combos sont éditable manuellement, je veux juste empêcher l'écriture manuelle dans tous les combobox ( ce qui est normalement possible avec la propriété (fmStyleDropDownList), mais ne fonctionne pas avec mon code actuel.
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko