ComboBox VBA [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 10 juin 2011
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
3
Date d'inscription
vendredi 10 juin 2011
Statut
Membre
Dernière intervention
30 juin 2011
-
Bonjour,
Je développe un utilitaire simple sur VBA/Excel. 2007
Dans un UserForm, j'ai une combobox qui me permet de rechercher des titres à partir d'une base de donnée (dans une feuille Excel). Une fois, le titre sélectionné, des infos complémentaires , s'inscrivent automatiquement dans les textbox correspondantes. Que je renseigne ou modifie à mon gré.
Je voudrai que quand j’ai cliqué sur une ligne de la combo que celle-ci soit désactivée le temps de renseigner mes textbox(ceci par sécurité) et la réactiver à mon gré avec un bouton de validation de modif.
mais je n'y arrive pas, comment faire? La propriété Enabled ne marche pas.
je pas trouvé la solution dans le forum.

merci de bien vouloir m'aider
JoDan

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
le principe est le même... et tu devrais savoir t'en inspirer.

Voilà un autre exemple (et ensuite tu seras seul avec toi-même)
Sur un UserForm, une listbox listbox1 et un bouton de commande CommandButton1;
Ce code
Private Sub UserForm_Activate()
 For i = 1 To 3
    ListBox1.AddItem " a" & i
 Next
End Sub
Private Sub CommandButton1_Click()
  ListBox1.Visible = Not ListBox1.Visible
End Sub
Private Sub ListBox1_Click()
  If ListBox1.ListIndex < 0 Then Exit Sub
  MsgBox "tu as choisi l'article " & ListBox1.List(ListBox1.ListIndex) & " et tu ne vois plus la listbox"
  CommandButton1.SetFocus
  DoEvents
  ListBox1.Visible = Not ListBox1.Visible
End Sub


lance ===>> listbox remplie ===>> sélectionne ===>> elle disparaît carrément ===>> clique sur Commandbutton1 ===>> elle réapparait, etc ...
Voilà ! A toi de t'en inspirer et d'installer tes conditions de réapparition là où tu le veux. C'est un jeu d'enfant !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
ce devrait être quelque chose ressemblant à ceci :


Dim deja as string

Private Sub ComboBox1_Click()
  toto = ComboBox1.ListIndex
  If InStr(deja, "@" & toto & "@") = 0 Then
     deja = deja & "@" & toto & "@"
  Else
    ComboBox1.ListIndex = -1
  End If
End Sub



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Il ne te manque qu'à y ajouter une variable booléenne et à l'utiliser (essaye seul d'abord)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Et au fait :
Pourquoi ne pas jouer avec la propriété enabled de ta combo ?
True avant click et False après Click, mais rendue à nouveau True quand travail terminé sur tes textboxes ?
A toi !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Mais je vois que tu y avais déjà pensé...
C'est vrai, mais elle est alors à utiliser dans l'évènement Change, genre :
Private Sub ComboBox1_Change()
  MsgBox "tu as sélectionné l'article " & ComboBox1.List(ComboBox1.ListIndex)
  ComboBox1.Enabled = False
End Sub


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
3
Date d'inscription
vendredi 10 juin 2011
Statut
Membre
Dernière intervention
30 juin 2011

merci de toutes vos réponses mais j'ai écrit une c... betise ce n'est pas un comboBox mais une listebox.

désolé, j'attend vos réponses

jodan
Messages postés
3
Date d'inscription
vendredi 10 juin 2011
Statut
Membre
Dernière intervention
30 juin 2011

Merci j'ai essayé cette astuce qui me convient parfaitement, j'ai même mis un label derrière la listbox qui devient visible et qui donne une consigne ce qui m'a permis de supprimer un Msgbox

merci encore de vote réactivité
jodan