Transfert contenu Listbox dans une feuille excel - aide

thespeedy20

XLDnaute Occasionnel
Bonjour à tous,

J'ai un formulaire avec des listbox en cascade, j'aimerais transférer le contenu du résultat qui est dans une listbox(plusieurs colonnes) vers une feuille, actuellement je parviens à transférer mais toutes les données dans une seule cellule et sur plusieurs lignes, au lieu d'avoir les informations dispatchées par colonne...et sur la ligne

Je joins mon fichier...

Merci d'avance

Olivier
 

Pièces jointes

  • Cascade.xlsm
    55.7 KB · Affichages: 31

Rhysand

XLDnaute Junior
Bonsoir à tous

exemple:
une listbox avec le nom "Listbox1",
une feuille de calcul avec le nom "Feuille1"
et la première ligne qui recevra les données - la ligne 13

VB:
Dim R As Long, C As Long
 

For R = 0 To ListBox1.ListCount - 1
    For C = 0 To ListBox1.ColumnCount - 1
        Application.ThisWorkbook.Worksheets("Feuille1").Range("A13").Offset(R, C).value = ListBox1.List(R, C)
    Next
Next


J'espère aider
 

thespeedy20

XLDnaute Occasionnel
Bonsoir Rhysand,

Merci pour ta proposition, mais les données se mettent dans la cellule A et pas dans les colonnes

Col.JPG


OLi
 

Rhysand

XLDnaute Junior
Bonjour à tous

sans rien changer d'autre dans votre projet, j'ai juste fait les changements nécessaires pour diviser les données en colonnes dans la listbox (ListBoxNom)



VB:
Private Sub ListBoxClasse_Click()

'>>>------------------------------------------------------------
With Me.ListBoxNom
    .Clear
    .ColumnCount = 9
    .ColumnWidths = "80 pt;80 pt;80 pt;80 pt;80 pt;80 pt;80 pt;80 pt;80 pt"
End With

Dim ArrInput() As String, i As Integer
Dim x As Integer
Dim ArrOutput As Variant
'<<<------------------------------------------------------------

Me.ListBoxNom.Clear

Set dchoisis5 = CreateObject("Scripting.Dictionary")

'>>>------------------------------------------------------------
i = 0

On Error Resume Next
ReDim ArrInput(0)
On Error GoTo 0
'<<<------------------------------------------------------------

For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    temp = c.Offset(, 4).Value & "#" & c.Offset(, 6).Value _
    & "#" & c.Offset(, 7).Value & "#" & c.Offset(, 8).Value _
    & "#" & c.Offset(, 9).Value & "#" & c.Offset(, 10).Value _
    & "#" & c.Offset(, 11).Value & "#" & c.Offset(, 12).Value _
    & "#" & c.Offset(, 13).Value & "#" & c.Offset(, 14).Value
    If dchoisis.exists(c.Value) And dchoisis2.exists(c.Offset(, 1).Value) And _
        dchoisis3.exists(c.Offset(, 2).Value) And _
        dchoisis4.exists(c.Offset(, 3).Value) And _
        c.Offset(, 9).Value = ListBoxClasse Then
        dchoisis5(temp) = c.Row
'>>>------------------------------------------------------------
        ArrInput(i) = temp
        i = i + 1
        ReDim Preserve ArrInput(i)
'<<<------------------------------------------------------------
    End If
Next c

'>>>------------------------------------------------------------
If dchoisis5.Count > 0 Then
    For x = LBound(ArrInput) To UBound(ArrInput)
        ArrOutput = Split((ArrInput(x)), "#")
            With Me.ListBoxNom
                    On Error Resume Next
                    .AddItem
                    .List(.ListCount - 1, 0) = ArrOutput(0)
                    .List(.ListCount - 1, 1) = ArrOutput(1)
                    .List(.ListCount - 1, 2) = VBA.FormatDateTime(ArrOutput(2))
                    .List(.ListCount - 1, 3) = ArrOutput(3)
                    .List(.ListCount - 1, 4) = ArrOutput(4)
                    .List(.ListCount - 1, 4) = ArrOutput(5)
                    .List(.ListCount - 1, 4) = ArrOutput(6)
                    .List(.ListCount - 1, 4) = ArrOutput(7)
                    .List(.ListCount - 1, 4) = ArrOutput(8)
            End With
    Next x
End If
'<<<------------------------------------------------------------

End Sub


J'espère aider
 

Rhysand

XLDnaute Junior
Bonjour,

Pour que moi ou quelqu'un d'autre puisse vous aider(" de l'améliorer "), nous devons savoir tout ce que vous voulez. En d'autres termes, nous devrons commencer votre projet à partir de zéro, mais en sachant tout ce dont vous avez besoin.

Pour l'instant, afin de ne pas confondre les sujets du forum, si vous avez des doutes, demandez comment faire, même si vous devez poser plus de 1000 questions pour mener à bien votre projet.
 

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 201
Membres
102 816
dernier inscrit
bolivier