Résolu : Listview et plage horizontale

  • Initiateur de la discussion Initiateur de la discussion Kim75
  • 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 !

Kim75

XLDnaute Occasionnel
Bonjour le forum,

En général les lignes qui alimentent une listview sont disposées verticalement dans la feuille des données, dans mon cas elles sont disposées horizontalement par franges de 7

Pour l’instant j’arrive à alimenter la listview, mais pour faire le chemin inverse, je le fais avec un code trop long qu'il faudrait changer par des boucles que je n'arrive pas à faire

Par avance, merci pour l'aide que vous pourriez m'apporter !

Code:
Private Sub CommandButton1_Click()
Dim Sh As Worksheet, Li As Long, c As Integer, i As Integer, j As Integer
Set Sh = Sheets("Test")
Li = Sh.[B:B].Find(ListBox1, LookIn:=xlValues).Row
    Sh.Cells(Li, 15) = ListView1.ListItems(1).Text
    Sh.Cells(Li, 16) = ListView1.ListItems(1).ListSubItems(1).Text
    Sh.Cells(Li, 17) = ListView1.ListItems(1).ListSubItems(2).Text
    Sh.Cells(Li, 18) = ListView1.ListItems(1).ListSubItems(3).Text
    Sh.Cells(Li, 19) = ListView1.ListItems(1).ListSubItems(4).Text
    Sh.Cells(Li, 20) = ListView1.ListItems(1).ListSubItems(5).Text
    Sh.Cells(Li, 21) = ListView1.ListItems(1).ListSubItems(6).Text

    Sh.Cells(Li, 22) = ListView1.ListItems(2).Text
    Sh.Cells(Li, 23) = ListView1.ListItems(2).ListSubItems(1).Text
    Sh.Cells(Li, 24) = ListView1.ListItems(2).ListSubItems(2).Text
    Sh.Cells(Li, 25) = ListView1.ListItems(2).ListSubItems(3).Text
    Sh.Cells(Li, 26) = ListView1.ListItems(2).ListSubItems(4).Text
    Sh.Cells(Li, 27) = ListView1.ListItems(2).ListSubItems(5).Text
    Sh.Cells(Li, 28) = ListView1.ListItems(2).ListSubItems(6).Text

    Sh.Cells(Li, 29) = ListView1.ListItems(3).Text
    Sh.Cells(Li, 30) = ListView1.ListItems(3).ListSubItems(1).Text
    Sh.Cells(Li, 31) = ListView1.ListItems(3).ListSubItems(2).Text
    Sh.Cells(Li, 32) = ListView1.ListItems(3).ListSubItems(3).Text
    Sh.Cells(Li, 33) = ListView1.ListItems(3).ListSubItems(4).Text
    Sh.Cells(Li, 34) = ListView1.ListItems(3).ListSubItems(5).Text
    Sh.Cells(Li, 35) = ListView1.ListItems(3).ListSubItems(6).Text

    Sh.Cells(Li, 36) = ListView1.ListItems(4).Text
    Sh.Cells(Li, 37) = ListView1.ListItems(4).ListSubItems(1).Text
    Sh.Cells(Li, 38) = ListView1.ListItems(4).ListSubItems(2).Text
    Sh.Cells(Li, 39) = ListView1.ListItems(4).ListSubItems(3).Text
    Sh.Cells(Li, 40) = ListView1.ListItems(4).ListSubItems(4).Text
    Sh.Cells(Li, 41) = ListView1.ListItems(4).ListSubItems(5).Text
    Sh.Cells(Li, 42) = ListView1.ListItems(4).ListSubItems(6).Text
Unload Me
End Sub

Le code est le suivant :

Code:
Private Sub CommandButton1_Click()
Dim Sh As Worksheet, Li As Long, c As Long, i As Long, j As Long
Set Sh = Sheets("Test")
Li = Sh.[B:B].Find(ListBox1, LookIn:=xlValues).Row
For c = 15 To 42 Step 7
    i = i + 1
    Sh.Cells(Li, c) = ListView1.ListItems(i).Text
    For j = 1 To 6
        Sh.Cells(Li, c + j) = ListView1.ListItems(i).ListSubItems(j).Text
    Next j
Next c
Unload Me
End Sub

Cordialement, Kim.
 

Pièces jointes

Dernière édition:
Re : Résolu : Listview et plage horizontale

bonjour Kim,le forum
il faut partir de l'objet qui contient les données
une boucle pour les lignes,i
une boucle pour les colonnes,j
une variable index colonne c,initialisée c=15
une variable index ligne feuille li

Code:
    Set Sh = Sheets("Test")
    Li = Sh.[B:B].Find(ListBox1, LookIn:=xlValues).Row
    c = 15
    For i = 1 To Me.ListView1.ListItems.Count
        Sh.Cells(Li, c) = ListView1.ListItems(i).Text
        For j = 1 To Me.ListView1.ColumnHeaders.Count - 1
            Sh.Cells(Li, c + j) = ListView1.ListItems(i).ListSubItems(j).Text
        Next j
        c = c + 7
    Next i
 
- 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
2
Affichages
428
Réponses
5
Affichages
542
Retour