Remplir une cellule à partir d'une ListBox

Bonjour à tous,

Je sollicite votre aide sur un sujet sur lequel je passe pas mal de temps, mais que je n'arrive pas à résoudre.

Voici ce que je souhaiterais réaliser :

J'ai un tableau de suivi dans lequel je renseigne les consultations que je lance à destination de plusieurs fournisseurs de différentes catégories. J'ai de nombreux fournisseurs consultés à chaque fois et je passe pas mal de temps à les renseigner à la main dans la colonne "fournisseurs consultés"...

Pour cela, j'ai pensé à faire un UserForm avec une ListeBox pour compléter "automatiquement" les cellules souhaitées (celles de la colonne E du tableau).

J'ai donc fait mon UserForm et ma ListeBox qui est alimenté par une liste, mais ça s'arrête là.. En effet, je suis incapable de reporter la sélection de la ListBox vers la cellule que je veux.

En gros, l'idéal serait que lorsque je sélectionne, par exemple, la cellule E4, l'UserForm apparaisse. A partir de là, je sélectionne les fournisseurs qui m'intéressent, je valide et ma sélection est reportée dans la cellule E4 (avec une séparation ",").

Avez-vous une solution pour moi ? Il existe peut-être une manière plus simple de faire, je suis preneur.

Pour info, j'ai fait pas mal d'article, post forum, vidéo, mais sans grand succès. Autant vous dire que je suis loin d'être un expert en VBA

Je vous remercie pour votre précieuse aide.

Bonjour, il faut déjà modifier la propriété de votre listbox pour la paramètrer en "multi select" sinon vous ne pourrez choisir qu'un seul fournisseur.

ensuite dans le code du bouton

Private Sub CommandButton1_Click()
Dim i As Byte

    'boucle sur les éléments de la listbox
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.List(i) & Chr(10)
    Next i
ActiveCell.Value = Trim(temp)
Unload Me
End Sub

Incroyable ! Merci à toi !!!!

J'abuse encore un peu de tes compétences : tu penses qu'il est possible de mettre les fournisseurs sélectionnés les uns à la suite des autres en les séparant par une "," (Fournisseur 1, Fournisseur 2, Fournisseur 3...) sans retour à la ligne à la fin, le tout sans changer la dimension de la cellule ?

L'objectif est de conserver un tableau qui soit visuelement agréable et aussi d'exploiter la colonne E avec un séparateur à des fins d'analyse.

Merci encore l'aide !

Bonsoir ci joint ma solution

A+ François

Re bonjour, pour le redimensionnement des cellules le format de votre colonne dans le fichier d'origine était paramètré ainsi. il suffit de désactiver.

Pour le retour à la ligne retirer dans le code le caractère chr(10) et remplacez par exemple par " - " pour séparer les infos.

Private Sub CommandButton1_Click()
Dim i As Byte

    'boucle sur les éléments de la listbox
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then temp = temp & " - " & Me.ListBox1.List(i)
    Next i

ActiveCell.Value = temp
Unload Me
End Sub

Bonjour,

Encore merci pour votre aide, ça correspond parfaitement à ce que je voulais !!!

Merciii !!!!

Rechercher des sujets similaires à "remplir partir listbox"