Exporter le contenu d'une Listbox Vers une plage

aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014 - 4 janv. 2009 à 23:03
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014 - 5 janv. 2009 à 19:57
Bonjour tout le monde
je galère depuis 2 jours avec un code pour exporter le contenu d'une listbox vers une plage sur une feuille
en faite pour remplir un devis a l'aide d'un userform le code que j'utilise pour remplir le listbox marche bien :
 Private Sub btnAjouter_Click()
Dim Valeur1 As String
    Valeur1 = Me.T2.Value
    Me.ListBox1.AddItem Valeur1
    ListBox1.List(ListBox1.ListCount - 1, 1) = Me.T3
    ListBox1.List(ListBox1.ListCount - 1, 2) = Me.T4
    ListBox1.List(ListBox1.ListCount - 1, 3) = Me.T5
    ListBox1.List(ListBox1.ListCount - 1, 4) = Me.T6
    efface
End Sub
seulement le code qui me pose probléme c'est celui d'exporter le contenu de listbox vers une plage sur la feuille("Model_BL") le code actuel m'exporte qu'une seul ligne or je veux la totalité du contenu du listbox
Sub ValiderBL()
Dim L As Integer
If L = 40 Then
MsgBox "Vous êtes arrivé à la dernière ligne de ce Bon de Livraison", vbCritical, "Micro-Plus => Fin de BL"
Exit Sub
End If
With Sheets("Model_BL")
    .Range("A16").Resize(Range("A16").Rows.Count) = ListBox1.List(ListBox1.ListCount - 1, 0)
    .Range("B16").Resize(Range("B16").Rows.Count) = ListBox1.List(ListBox1.ListCount - 1, 1)
    .Range("C16").Resize(Range("C16").Rows.Count) = ListBox1.List(ListBox1.ListCount - 1, 2)
    .Range("D16").Resize(Range("D16").Rows.Count) = ListBox1.List(ListBox1.ListCount - 1, 3)
    End With
End Sub
je crois qu'il faut une boucle pour cela ?
Merci de votre aide

FOU DES CODES

2 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
5 janv. 2009 à 19:00
Salut,

Regarde ce bout de code en exemple(VB6, mais tu ne devrais pas avoir de problème pour le transcrire en .net ^^) :

Private Sub Form_Load()
For i = 0 To List1.ListCount - 1
    MsgBox List1.List(i)
Next i
End Sub

A+
Exploreur

 Linux a un noyau, Windows un pépin
    ** http://exploreur1.labrute.fr **
0
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014
5 janv. 2009 à 19:57
Salut,Exploreur
j'ai essayé avec le même code que tu m'a transmis d'ailleurs je te remercie :

Sub Ok()
     Dim L As Integer
     Dim compt As Integer
     L = Sheets("Model_BL").Range("A42").End(xlUp).Row
     'Inscrire le contenu d'une listbox dans la feuille 1 d'un classeur EXCEL
     For compt = 0 To (ListBox1.ListCount - 1)
   ' si ce n'est pas le dernier element
     If compt <> (ListBox1.ListCount - 1) Then
    ' Feuille recoi le Contenu de la listbox
    Feuil2.Range("A16" & L) = ListBox1.List(compt) + 1
    Else
    'si c'est le dernier
     Feuil2.Range("A16" & L) = ListBox1.List(compt)
    End If
    Next compt
     ' Affecter les données de la listbox dans les cellules de la feuille
End Sub
il transcris qu'un seul élément de ma  listBox vraiment c'est très difficile.
Cordialement

FOU DES CODES
0
Rejoignez-nous