Alimenté une listview à partir de plus onglet

cpeens

XLDnaute Occasionnel
Bonsoir je suis à la recherche d'une solution pour alimenter une listview à partir de plusieur onglet j'ai plus ou moins trouver mon bonheur grace a ce code le soucis c'est qu'il ne me prend que la derniere ligne

Code:
Dim Ind As Long, DLig As Long, sht As Worksheet
With ListView1
With .ColumnHeaders
.Clear
 '.Add , , "      Source", 0, lvwColumnLeft '/// on met la largeur de colonne à 0
.Add , , "Type de Produit", 90
.Add , , "Description du Produit", 90
.Add , , "Date transaction", 80
.Add , , "Date de péremption", 80, 2
.Add , , "Entrée", 60, 2
.Add , , "Sortie", 60, 2
.Add , , "Service", 90, 2
.Add , , "Commentaire", 110, 2
.Add , , "Nb unitée/Boite", 60, 2
.Add , , "Nb Boite", 80, 2
.Add , , "Stock", 80, 2
.Add , , "Alerte Péremption", 80, 2

End With
.View = lvwReport
.FullRowSelect = True

End With
For Each sht In Sheets
  If Left(sht.Name, 3) = "BDD" Then
' Cherche la dernière ligne du tableau
DLig = sht.Range("B" & Rows.Count).End(xlUp).Row
Me.ListView1.ListItems.Add , , sht.Range("A" & DLig)
Ind = Me.ListView1.ListItems.Count
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("B" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("C" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("D" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("E" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("F" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("G" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("H" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("I" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("J" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("K" & DLig)
Me.ListView1.ListItems(Ind).ListSubItems.Add , , sht.Range("l" & DLig)
End If
Next sht

comment faire pour que toute mes ligne soit prise en compte

merci de votre aide
 

Banzai64

XLDnaute Accro
Re : Alimenté une listview à partir de plus onglet

Bonjour

A tester
VB:
Private Sub UserForm_Initialize()
Dim Ind As Long, K As Long, L As Integer, sht As Worksheet
  With ListView1
    With .ColumnHeaders
      .Clear
       '.Add , , "      Source", 0, lvwColumnLeft '/// on met la largeur de colonne à 0
      .Add , , "Type de Produit", 90
      .Add , , "Description du Produit", 90
      .Add , , "Date transaction", 80
      .Add , , "Date de péremption", 80, 2
      .Add , , "Entrée", 60, 2
      .Add , , "Sortie", 60, 2
      .Add , , "Service", 90, 2
      .Add , , "Commentaire", 110, 2
      .Add , , "Nb unitée/Boite", 60, 2
      .Add , , "Nb Boite", 80, 2
      .Add , , "Stock", 80, 2
      .Add , , "Alerte Péremption", 80, 2
    End With
    .View = lvwReport
    .FullRowSelect = True
  End With
  
  With ListView1
    For Each sht In Sheets
      If Left(sht.Name, 3) = "BDD" Then
        '
        ' De la ligne 2 à la dernière ligne du tableau
        '
        For K = 2 To sht.Range("A" & Rows.Count).End(xlUp).Row
          .ListItems.Add , , sht.Range("A" & K)
          For L = 2 To 12
            .ListItems(.ListItems.Count).ListSubItems.Add , , sht.Cells(K, L)
          Next L
        Next K
      End If
    Next sht
  End With
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55