Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copie valeurs listbox multicolonne vers feuille

  • Initiateur de la discussion Initiateur de la discussion jtitin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jtitin

XLDnaute Occasionnel
bonjour à tous
je cherche à renvoyer dans une feuille les valeurs affichées dans une listbox multicolonne.
Ma listbox multicolonne à 42 colonnes dont 14 sont visibles sur plusieur lignes les autres sont masqué (largeur colonne = 0)

With ListBox3
.ColumnCount = 42
.ColumnWidths = "90;80;0;40;50;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;60;0;40;40;40;0;0;40;45;45;45;40;30;0"
End With

comment transférer ces 14 colonnes visibles dans la feuille
donc à partir de la cellule A5 la 1er colonne de la listbox
à partir de la cellule B5 la 2eme colonne de la listbox
à partir de la cellule C5 la 4eme colonne de la listbox
à partir de la cellule D5 la 5eme ......
à partir de la cellule E5 la 29eme colonne de la listbox
---
---
et jusqu'a la derniere en N5 la 41eme colonne de la listbox

merci pour votre aide
 
Re : copie valeurs listbox multicolonne vers feuille

Bonjour,

un petit essai...

Le principe :

- on met dans un tableau (X), la largeur des colonnes de ton ListBox, en "Splittant" les ";"
- Le tableau X aura donc cette forme :
X(0) = "90 pt"
X(1) = "80 pt"
X(2) = "0 pt"
....
....
- on convertit les chiffres de X(0), X(1)... en Double, puis on teste s'ils sont supérieurs à 0..
- Si oui, on écrit la valeur dans la cellule...

Essaie et dis quoi...

Code:
Private Sub CommandButton1_Click()
Dim J As Byte, I As Byte
Dim X
With Me.ListBox1
    If .ListIndex = -1 Then Exit Sub
    X = Split(.ColumnWidths, ";")
    For I = 0 To UBound(X)
        If CDbl(Left(X(I), Len(X(I)) - 3)) > 0 Then
            Cells(5, J + 1) = .List(.ListIndex, I)
            J = J + 1
        End If
    Next I
End With
Unload Me
End Sub
 
Re : copie valeurs listbox multicolonne vers feuille

merci bhbh pour ta réponse

mais je ne comprend pas le procédé
il faut faire un tableau pour initialiser la listbox ??

je cherche à renvoyer dans une feuille toutes les valeurs affichées dans la listbox
et pas la ligne sélectionnée

merci
 
Re : copie valeurs listbox multicolonne vers feuille

Re-,

il faut faire un tableau pour initialiser la listbox ??

Non, c'est un Tableau VBA..(il est juste en mémoire, et comporte la largeur de chaque colonne de ta listbox...

Et pour modifier, et copier toutes les données de ton listbox, modifie ainsi :

Code:
Private Sub CommandButton1_Click()
Dim J As Byte, Col As Byte, Lig As Byte
Dim X
With Me.ListBox1
    X = Split(.ColumnWidths, ";")
    For Lig = 0 To .ListCount - 1
        J = 0
        For Col = 0 To UBound(X)
            If CDbl(Left(X(Col), Len(X(Col)) - 3)) > 0 Then
                Cells(Lig + 5, J + 1) = .List(Lig, Col)
                J = J + 1
            End If
        Next Col
    Next Lig
End With
Unload Me
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
48
Affichages
973
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
262
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…