[RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

MADAGASCAR

XLDnaute Occasionnel
Bonjour EXCEL DOWNLOADS
Bonjour à tous et à toutes
SVP chers membres
Est ce qu'on peut faire ce truc ..
Obliger l'utilisateur de commencer toujours par par exemple ComboBox1 et si on tente de choisir autrement les controles seront bloqués
Merci beaucoup d'avance pour vos suggestions
Tres cordialement
MADA BLACK
 

Pièces jointes

  • Userform.xlsm
    13.8 KB · Affichages: 36
  • Userform.xlsm
    13.8 KB · Affichages: 36
Dernière édition:

DL_13

XLDnaute Occasionnel
Re : OBLIGATION de choisir ComboBox1

Bonjour,

Dans l'initialize de l'USF

Private Sub UserForm_Initialize()

For i = 2 To 3
Controls("Combobox" & i).Enabled = False
Next i

ComboBox1.AddItem ("1")
ComboBox1.AddItem ("2")
ComboBox1.AddItem ("3")

ComboBox2.AddItem ("aaa")
ComboBox2.AddItem ("bbb")
ComboBox2.AddItem ("ccc")

ComboBox3.AddItem ("111")
ComboBox3.AddItem ("222")
ComboBox3.AddItem ("333")

End Sub

et dans le Change du ComboBox1

For i = 2 To 3
Controls("Combobox" & i).Enabled = IIf(ComboBox1 <> "", True, False)
Next i

Bien sûr nommer ta variable i en Byte

Bonne journée
 

Pièces jointes

  • Mada 02022016.xlsm
    14.3 KB · Affichages: 32

MADAGASCAR

XLDnaute Occasionnel
Re : OBLIGATION de choisir ComboBox1

Bonjour DL_13
Merci beaucoup pour votre super fichier et impeccabe code
C'est exactement ce que je veux avoir
C'est bien résolu
Merci encore
Tres cordialement
MADA BLACK
 

Pièces jointes

  • mmm.jpg
    mmm.jpg
    9.2 KB · Affichages: 23
  • mmm.jpg
    mmm.jpg
    9.2 KB · Affichages: 26

job75

XLDnaute Barbatruc
Re : [RESOLU par DL_13] : OBLIGATION de choisir ComboBox1

Bonsoir,

Je ne peux quand même pas laisser la chose en l'état :rolleyes:

Code:
Private Sub ComboBox1_Change()
If ComboBox1 = "" Then ComboBox2 = "": ComboBox3 = ""
ComboBox2.Enabled = ComboBox1 <> ""
ComboBox3.Enabled = ComboBox1 <> ""
End Sub

Private Sub UserForm_Initialize()
ComboBox1.List = Array(1, 2, 3)
ComboBox2.List = Array("aaa", "bbb", "ccc")
ComboBox3.List = Array(111, 222, 333)
ComboBox1_Change
End Sub
Bonne nuit.
 

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU par DL_13] : OBLIGATION de choisir ComboBox1

Bonsoir JOB75
Merci beaucoup pour votre simple et impeccable code qui resume ces lourdes paniers d'inutiles codes
Tres gentil de votre part
Tres cordialement
MADA BLACK
 

Pièces jointes

  • j.jpg
    j.jpg
    59.1 KB · Affichages: 24
  • j.jpg
    j.jpg
    59.1 KB · Affichages: 26

laetitia90

XLDnaute Barbatruc
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

bonjour MADAGASCAR:) , DL_13 :) job :)

on peut exploiter Cancel egalement dans la mesure ou l' ordre de tabulation est sur combobox1 a ouverture user

Code:
Private Sub UserForm_Initialize()
 ComboBox1.List = Array(1, 2, 3)
 ComboBox2.List = Array("aaa", "bbb", "ccc")
 ComboBox3.List = Array(111, 222, 333)
End Sub
Private Sub ComboBox1_Exit(ByVal c As MSForms.ReturnBoolean)
 If ComboBox1 = "" Then c = 1
End Sub
 

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Bonjour LAETITIA90
Merci beaucoup pour votre super proposition et votre simple code
Franchement comme je suis debutant en VBA excel j'aime et j'adore beaucoup des differentes solutions .. pour mieux comprendre et comprendre
Merci encore .. et pas loin de ce sujet .. est ce qu'on peut faire un controle clé ..
C'est a dire j'ai 5 ou 6 ComboBox et dizaines de TextBox et ListBox OptionButton ..etc ..
SVP est ce qu'on peut viser par exemple ComboBox1 .. si on commence pas à choisir dans cette ComboBox1 alors tous le reste des differents controles seront bloques
Merci beaucoup d'avance
Tres Cordialement
MADA
 

job75

XLDnaute Barbatruc
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Bonjour MADA, Laetitia :)

Si l'on veut tout réinitialiser quand ComboBox1 = "" :

Code:
Private Sub ComboBox1_Exit(ByVal c As MSForms.ReturnBoolean)
If ComboBox1 = "" Then c = True
End Sub

Private Sub ComboBox1_Change()
If ComboBox1 = "" Then Application.OnTime 1, "show": Unload Me
End Sub

Private Sub UserForm_Initialize()
ComboBox1.List = Array(1, 2, 3)
ComboBox2.List = Array("aaa", "bbb", "ccc")
ComboBox3.List = Array(111, 222, 333)
End Sub
A+
 

Minise

XLDnaute Nouveau
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

perso je sais pas si c'est une bonne solution mais moi quand je veux faire un truc dans ce gout là, je mets par défaut tous les combobox (sauf le 1) en .visible = False et quand combobox1 <>"" je mets tout en .visible = true

après j'ai toujours été avec 4-5 combobox max alors ça reste gérable, si t'en as beaucoup plus ça peut devenir pénible
 

job75

XLDnaute Barbatruc
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Re,

Variante pour obliger à faire un choix dans la liste :

Code:
Private Sub ComboBox1_Change()
'pour obliger à faire un choix dans la liste
If ComboBox1.ListIndex = -1 Then Application.OnTime 1, "show": Unload Me
End Sub
Bonjour Minise,

Pas fameux de laisser l'USF aux 3/4 vide s'il y a de nombreux contrôles masqués...

A+
 

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Bonjour JOB75
Vous avez raison .. USF avec 3/4 quart vides .. sa place est le désert
Merci .. tres tres gentil de votre part
On vous trouve toujours avec vos formidables et impeccables solutions .. plutot vos precieux leçons
Tres Tres cordialement
MADA BLACK
 

Si...

XLDnaute Barbatruc
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

salut

Quand on n’a pas prévu l’ordre de sélection dans la liste des propriétés (TabIndex), Combobox1 étant le déclencheur de la suite à sa sortie et peu importe le nombre de contrôles après et rendus inaccessibles,
Code:
Private Sub UserForm_Initialize()
  Combobox1.TabIndex = 0 'élément sélectionné à l'ouverture
  ComboBox1.List = Array(1, 2, 3)
  ComboBox2.List = Array("aaa", "bbb", "ccc")
  ComboBox3.List = Array(111, 222, 333)
End Sub
Puis sans Si… :D
Code:
Private Sub ComboBox1_Exit(ByVal Q As MSForms.ReturnBoolean)
  Q = ComboBox1 = ""
End Sub

mais avec un souci quand la saisie n’est pas dans la liste et pour éviter cela
Code:
Private Sub ComboBox1_Exit(ByVal Q As MSForms.ReturnBoolean)
  If ComboBox1.ListIndex < 0 Then ComboBox1 = ""
  Q = ComboBox1 = ""
End Sub
 

ChTi160

XLDnaute Barbatruc
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Bonjour MADAGASCAR
Bonjour Le Fil,Le Forum

Un peu tard , mais une autre possibilité peut être .

[HighLight=VB]Private Sub ComboBox1_Change()
With UserForm1
For i = 2 To 3
With .Controls("Combobox" & i)
.Visible = IIf(UserForm1.ComboBox1 <> "", True, False)
End With
Next i
End With
End Sub
'****************************
Private Sub UserForm_Initialize()
With UserForm1
With .ComboBox1
.List = Array("", 1, 2, 3)
.Visible = True
End With
With .ComboBox2
.List = Array("aaa", "bbb", "ccc")
.Visible = False
End With
With .ComboBox3
.List = Array(111, 222, 333)
.Visible = False
End With
End With
End Sub[/code]
Bonne journée
Amicalement
Jean Marie
 
Dernière édition:

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU par DL_13 et JOB75] : OBLIGATION de choisir ComboBox1

Bonjour Jean Marie...
Merci 1000 fois pour votre aussi formidable solution
Tres gentil de votre part
Pas tard .. je verifie et je reviens toujours à mes sujets meme apres des longues periodes
Tres cordialement
MADA BLACK
 

Discussions similaires