Listebox choix multiple

Bonjour à tous,

Puis-je demander un peu d'aide aux personnes de ce forum...

j'ai une liste box à choix multiple, le résultat s'affiche en colonne...

je souhaiterais avoir le résultat en ligne dans le but d'alimenter une base de donnée

Vous remerciant....

Oli

20choixmultiple.xlsm (26.45 Ko)

bonjour

je pense que vous n etait pas assez clair ,mais regardez ce qu on peut faire avec :

12choixmultiple.xlsm (26.84 Ko)

Bonjour,

J'apprécie que ce code n'ait rien de commun avec du code enregistré, c'est déjà ça ! Cependant tu sembles plutôt partisan de commandes superflues ou destinées à l'allonger inutilement...

Proposition de simplification :

  • Nommer la plage C2:C... en dynamique (à voir dans le Gestionnaire de noms) [Je l'ai nommée PnmNm]
  • Affecter le nom de plage à la propriété RowSource de la ListBox (à faire dans la fenêtre de propriétés).
  • Supprimer la proc. UserForm.Initialize qui n'a plus d'utilité [Nb : dans sa version initiale, la commande Clear d'une part et la boucle visant à désélectionner (ce qui ne pouvait l'être...) n'avaient déjà pas d'utilité... !]

-Modifier la seule proc. restante :

Private Sub CommandButton1_Click()
    Dim i As Byte, Aecrire
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then Aecrire = Aecrire & ";" & [PnmNm].Cells(i + 1, 2)
    Next i
    Aecrire = Split(Replace(Aecrire, ";", "", 1, 1), ";")
    With Worksheets("Test")
        .Range("G13:" & .Range("G13").End(xlToRight).Address).ClearContents
        .Range("G13").Resize(, UBound(Aecrire) + 1) = Aecrire
    End With
    Unload UserForm1
End Sub

Ça simplifie ! Et l'inscription se fera sur la ligne 13.

Cordialement.

Bonjour le forum,

Merci Amir pour cette proposition qui fonctionne très bien....

Merci aussi MFerrand pour la simplification,

Par contre je ne vois pas comment changer la macro pour afficher d'autre données que l'adresse mail et qui se trouverait dans une autre colonne.

Ex listbox : le nom et prénom et affichage du téléphone par exemple....

Encore merci pour le temps consacré.

Bonne journée

bonjour

Sheets("Test").Range("f2:n2").ClearContents 'Supprime l ancien résultat

Tbl est un tableau qui alimente la ListBox1,

= Tbl(numero de la ligne ,  numero de la colonne)

Par exemple :

Tbl(2 , 3) donne la cellule de la ligne 2 et la colonne 3 ==> Albert Just

Si vous vous voulez remplir la cellule f2 par « Albert Just » vous utilisez :

Sheets("Test").Cells(2, 6).Value = Tbl(2, 3)

et Cells(numero de la ligne , numero de la colonne) meme regle comme le tableau 'Tbl(numero de la ligne , numero de la colonne)

On peut afficher tout élément de la base :

le nom => [PnmNm].Cells(i + 1, 0)

le prénom => [PnmNm].Cells(i + 1, -1)

Il suffit de savoir comment les disposer et où les mettre...

Bonjour le forum,

Merci Amir et Mferrand pour vos infos utiles....

J'ai encore une petite question : dans le cadre de plusieurs liste box comment dois-je m'y prendre afin que le code ne soit pas trop lourd.... Dans mon projet, il y aurait 3 listbox avec choix multiple.

En vous remerciant pour vos renseignement et du temps consacré....

Merci

Olivier

Pourquoi plusieurs ListBox ? Et quel contenu ?

Cas examiné : une ListBox, alimentée à partir d'un tableau. Le même tableau ne justifie en aucun cas l'utilisation de ListBox supplémentaires. Il s'agirait donc de contenus provenant d'autres tableaux ou d'éléments extérieurs introduits directement ?

Bonsoir Mferrand,

ces listes box pour d"alimenter une base de données plus facilement. et de pouvoir faire une fiche récapitulative par la suite. sur la feuille 2 , le type de donnée...

Encore merci pour tes précieux conseils

bonne soirée

Olivier

Rechercher des sujets similaires à "listebox choix multiple"