Insertion d'une listbox

  • Initiateur de la discussion Initiateur de la discussion nico
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nico

Guest
Boujour à tous,

Je me prends la tête la-dessus depuis plusieurs jours:

A partir d'une macro VBA, comment inserer une listbox dans une cellule précise, lui définir sa liste déroulante et ajouter le code évenementiel qui va avec?
Pour certains d'entre vous, je pense que cela est un jeu d'enfant, mais pour un débutant comme moi, Aïe Aïe!!!!

A l'avance merci du coup de main.
 
bonjour Nico

en lisant ton message j'ai interprété que ta listbox correspondait à une liste de validation ...
la procedure ci joint permet de créer une liste de validation dans la cellule active . La liste de données est définie en selectionnant une plage de celllules ( par inputbox )


Sub ListeDeroulante()
Dim Plage As Object
Dim Val As String
Dim Cible As String

Val = ActiveCell.Address
Set Plage = Application.InputBox("Sélectionnez une plage pour definir la liste de validation : ", Type:=8)
If Plage Is Nothing Then Exit Sub

Cible = Plage.Address

With Range(Val).Validation
.Add Type:=xlValidateList, Formula1:="=" & Cible
End With

End Sub



peux tu donner plus d'infos pour le code evenementiel , car je n'ai pas compris ce que tu veux faire .
j'espere que l'exemple ci dessus repondra deja en partie à ta question

bonnne soirée
michel
lapin4.gif
 
Avant toute chose, Michel,merci de t'être interressé à mon problème, voici donc quelques précisions:

- Je veux inserer une listebox dans une cellule précise dans une feuille existante (çà tu le savais déjà!!)
- que cette liste contienne 2 items que je définirai dans mon code (choix1/choix2)
- que lorsque l'utilisateur choisi ensuite l'un ou l'autre des 2 choix de la liste, un évenement ce déclenche (ex: affichage du userform1 si choix1 sélectionné ou du userform2 si choix2 sélectionné).

J'espère que tu en sais maintenant plus sur le sujet.

A l'avance merci du coup de pouce.
 
Bonjour Nico

Tu peux insérer la procédure ci joint au niveau de la feuille pour faire apparaître des userforms différents selon la valeur choisie dans la liste ( la liste de choix doit être dans la cellule A6 pour l’exemple )


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Range("A6") = "choix1" Then UserForm1.Show ' à adapter selon cellule cible
If Range("A6") = "choix2" Then UserForm2.Show
Range("A6") = "" 'pour éviter un réaffichage des USF lors du 2eme clic sur cellule
End Sub

Il y a sans doute des solutions plus élégantes notamment avec Worksheet_Change , mais ma version d’Excel 97 ne me permets ce genre de fantaisies ( c’est pour ça par exemple que j’ai ajouté Range("A6") = "" à la fin de la procédure , sinon j’ai un réaffichage intempestif du userform quand je recliques sur la cellule A6 )


Pour la création de la liste de choix par VBA , si tu as systématiquement les 2 mêmes items , il y a possibilité de simplifier la macro que je t ‘ai envoyé hier
Par exemple :

Sub ListeDeroulante()
Dim Val As String
Val = ActiveCell.Address
With Range(Val).Validation
.Add Type:=xlValidateList, Formula1:="choix1,choix2"
End With
End Sub


Bonne journée
Michel
img
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
24
Affichages
5 K
Retour