Listbox transposée

Bonjour le forum,

Je reviens vers vous car que galère vraiment avec les listBox.

Comment faire pour "Transposer" toutes les Item d'une ListBox d'une colonne sur une ligne d'une feuille excel ?

J'arrive a transférer les donner en vertical, mais je veux les transférer en horizontal.

D'avance, merci.

Bonjour Jess1970,

à tester

Private Sub CommandButton1_Click()
With ListBox1
   If .ListCount > 0 Then
        Range("A1").Resize(, .ListCount) = Application.Transpose(.List)
   End If
End With
End Sub

Bonjour m3ellem1,

C'est parfait !!

C'est "Application.Transpose" que je n'utilisais pas bien

Mille merci

Bonjour m3ellem1,

C'est parfait !!

C'est "Application.Transpose" que je n'utilisais pas bien

Mille merci

mais avec plaisir

Bon, je me suis réjouis trop vite.

Je n'arrive pas à modifier le code pour qu'il fonctionne avec mon projet.

Voici le code :

Private Sub CButton_Enregistrer_Click()

If MsgBox("Voulez-vous enregistrer la modification ?", vbYesNo, "Demande de confirmation") = vbYes Then
  End If

    Set Ta = ThisWorkbook.Sheets("BD")

  Set A = Ta.Range("A:A").Cells.Find(Me.TB_Entreprise, , xlValues, xlWhole) 'recherche rang dans tableau "BD"
    If Not A Is Nothing Then

                  Ta.Cells(A.Row, 3) = TB_Adresse_Potale.Value
                  Ta.Cells(A.Row, 5) = TB_Adresse_Physique.Value
                  Ta.Cells(A.Row, 4) = TB_Ville.Value
                  Ta.Cells(A.Row, 6) = TB_Pays.Value
                  Ta.Cells(A.Row, 7) = TB_Téléphone.Value
                  Ta.Cells(A.Row, 8) = ListBox1.Application.Transpose(.List)

                  End If
                  End Sub

Je ne sais pas comment faire pour que le contenue de ma ListBox soit envoyé dans la bonne cellule après recherche.

J'ai un message d'erreur:

Erreur de compilation:

Référence incorrecte ou non qualifiée

Surbrillance sur

(.List)

Sorry mais je ne comprend plus rien

essaie comme ca et si ca fonctionne pas, il nous faut un fichier test proche du fichier réel!

Private Sub CButton_Enregistrer_Click()

If MsgBox("Voulez-vous enregistrer la modification ?", vbYesNo, "Demande de confirmation") = vbYes Then
  End If

    Set Ta = ThisWorkbook.Sheets("BD")

  Set A = Ta.Range("A:A").Cells.Find(Me.TB_Entreprise, , xlValues, xlWhole) 'recherche rang dans tableau "BD"
    If Not A Is Nothing Then

        Ta.Cells(A.Row, 3) = TB_Adresse_Potale.Value
        Ta.Cells(A.Row, 5) = TB_Adresse_Physique.Value
        Ta.Cells(A.Row, 4) = TB_Ville.Value
        Ta.Cells(A.Row, 6) = TB_Pays.Value
        Ta.Cells(A.Row, 7) = TB_Téléphone.Value

            If ListBox1.ListCount > 0 Then
                Ta.Cells(A.Row, 8).Resize(, .ListCount) = ListBox1.Application.Transpose(.List)
            End If
    End If

End Sub

Bonjour a toutes est a tous et avant toute chose, BONNE ANNEE !!!

Alors j'ai essayé plusieurs possibilité selon tes conseils, mais ça ne fonctionne pas...

Je joint mon fichier un peu simplifié vue qu'il y a des données confidentielles, je joint aussi une petite aide vue qu'il est assez complexe a utiliser si c'est en mode Admin.

J'espère qu'avec ça, tu pourras faire qqchose pour m'aider.

Un grand merci d'avance.

4document1.pdf (696.96 Ko)
7jess.xlsm (256.78 Ko)

Salut Jess,

essaie comme ca

  Set Ta2 = ThisWorkbook.Sheets("BD2")
  Set A = Ta2.Range("A:A").Cells.Find(Me.TB_Entreprise, , xlValues, xlWhole) 'recherche rang dans tableau "BD"
  decal = 0  
  If Not A Is Nothing Then
    Ta2.Range(Cells(A.Row, 2), Cells(A.Row, 10)).ClearContents
    With LB_Métiers
    For i = 0 To .ListCount - 1
        For j = 0 To .ColumnCount - 1
            Ta2.Cells(A.Row, 2 + decal) = .List(i, j)
            decal = decal + 1
        Next j
    Next i
    End With
  End If
7jess-v1.xlsm (246.02 Ko)

Salut m3ellem1,

C'est extra !!!

Merci pour ton aide et ton temps passé pour moi.

Il ne me reste plus qu'a étudier ton code pour comprendre toutes les subtilités des ListBox.

Il ne me reste plus qu'a étudier ton code pour comprendre toutes les subtilités des ListBox.

Pour mieux comprendre:

dans ton cas on peut éviter la variable j, puisqu'il n'y a qu'une seule colonne dans la listbox

  Set Ta2 = ThisWorkbook.Sheets("BD2")
  Set A = Ta2.Range("A:A").Cells.Find(Me.TB_Entreprise, , xlValues, xlWhole) 'recherche rang dans tableau "BD"
  decal = 0
  If Not A Is Nothing Then
    Ta2.Range(Cells(A.Row, 2), Cells(A.Row, 10)).ClearContents
    With LB_Métiers
    For i = 0 To .ListCount - 1 ' ici on calcule le nombre de ligne de la listbox, puisque c'est un index on commence à 0 et on retranche 1 du Listcount
            Ta2.Cells(A.Row, 2 + decal) = .List(i, 0) ' decal c'est pour incrémenter le nombre de colonne afin de transposer les données ; .List(i, 0) ==> i c'est clair et le 0 car la listbox ne contient qu'une seule colonne
            decal = decal + 1 ' on incrémente decal tant qu'on a pas atteint le dernier élement i de la listbox
    Next i
    End With
  End If

j'espère que c'est clair.

C'est cool !!

Merci pour la leçon. Moi qui n'aime pas déranger les gens, je suis super gêné. Alors encore une fois, MERCI.

Rechercher des sujets similaires à "listbox transposee"