listbox multiselection et formulaire

listbox multiselection et formulaire - VB/VBA/VBS - Programmation

Marsh Posté le 24-06-2007 à 11:56:36    

Bonjour,  
je viens de me lancer dans la programmation en visual basic et je bute sur une listbox à choix multiples.
Il s'agit de remplir un imprimé ou j'ai inséré des signets. Pour cela , j'ai créé un formulaire dans lequel j'ai mis une listbox avec plusieurs items.
L'utilisateur doit pouvoir choisir plusieurs items texte.
Ensuite les choix de l'utilisateur sont affichés dans l'imprimé.
Le pb est :  
quand je choisi la propriété "multiselectsingle" de la listbox, l'item choisi s'affiche. mais si je choisi "multiselectmulti", j'ai une erreur "utilisation incorrecte de null"
voici le code  
 
Option Explicit
Private Sub OK_Click()
Selection.GoTo , , , "jours"
Selection.InsertAfter ListBox1
End Sub
 
Private Sub userform_initialize()
ListBox1.AddItem "lundi"
ListBox1.AddItem "Mardi"
ListBox1.AddItem "Mercredi"
ListBox1.AddItem "Jeudi"
ListBox1.AddItem "Vendredi"
End Sub
 
L'uitlisateur doit pouvoir choisir Lundi, mardi et jeudi par exemple et cela doit s'afficher sur mon imprimé.
J'ai beau chercher, je n'arrive pas à trouver la solution.
Merci de m'aider. :pt1cable:  

Reply

Marsh Posté le 24-06-2007 à 11:56:36   

Reply

Marsh Posté le 24-06-2007 à 15:03:12    

A adapter , ici le choix de ListBox1 est envoyé sur ListBox2


Private Sub ChoixLBox_Click()
Dim i As Integer
     
    ListBox2.Clear
    If ListBox1.ListIndex = -1 Then Exit Sub
 
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            ListBox2.AddItem ListBox1.List(i)
        End If
    Next i
End Sub

Reply

Marsh Posté le 24-06-2007 à 16:22:16    

Merci pour votre réponse ultra rapide. Voici ce que j'ai écrit :
Dim i As Integer
    If ListBox1.ListIndex = -1 Then Exit Sub
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            Selection.InsertAfter ListBox1.List(i) & Chr(160)
        End If
            Next i
        End Sub
Pour que l'affichage soit plus lisible, j'ai ajouté une virgule et un espace entre chaque item en ajoutant & chr(130) & chr(160)
Cela fonctionne mais du coup, il y a une virgule derrière le dernier item.
J'ai donc enlevé la virgule pour ne laisser que l'espace mais j'aimerai connaitre la procédure pour mettre une virgule entre chaque item sauf le dernier.
Ex lundi, mardi, jeudi
merci et merci encore pour votre réponse, je vais enfin pouvoir terminer mon formulaire
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed