Sub ListView_vers_Feuille()
Dim R As Range 'déclare la variable R (Recherche)
Dim LI As Integer 'déclare la variable LI (LIgne)
Dim l As Integer 'déclare la variable I(Incrément)
Dim lg As Long, cl As Long, i As Long, j As Long
Dim T As Variant
Set OB = Worksheets("Bilan") 'définit l'onglet OB
Set TSB = OB.ListObjects("Tableau1")
Set R = TSB.ListColumns(1).Range.Find("")
If R Is Nothing Or TSB.ListRows.Count = 0 Then
TSB.ListRows.Add 'ajoute une ligne à TSB
LI = TSB.ListRows.Count 'définit la ligne LI (dernière ligne de TSB)
Else
LI = R.Row - TSB.HeaderRowRange.Row 'définit la ligne LI (ligne de la première occurrence trouvée moins la ligne de en-têtes de TSB)
End If
With UserFormFiltre.ListView1
lg = .ListItems.Count
cl = .ColumnHeaders.Count
ReDim T(1 To lg, 1 To cl + 1)
For i = 1 To lg
T(i, 1) = .ListItems(i).Text
For j = 1 To cl - 1
T(i, j + 1) = .ListItems(i).ListSubItems(j).Text
Next j
Next i
End With
For l = 1 To lg ' boucle sur les lignes du tableau
TSB.DataBodyRange(LI, 1 + l) = T(i, 1)
TSB.DataBodyRange(LI, 2 + l) = T(i, 2)
TSB.DataBodyRange(LI, 3 + l) = T(i, 3)
TSB.DataBodyRange(LI, 4 + l) = T(i, 4)
TSB.DataBodyRange(LI, 5 + l) = T(i, 5)
TSB.DataBodyRange(LI, 6 + l) = T(i, 6)
TSB.DataBodyRange(LI, 7 + l) = T(i, 7)
TSB.DataBodyRange(LI, 8 + l) = T(i, 8)
TSB.DataBodyRange(LI, 9 + l) = T(i, 9)
Next
End Sub