Bonjour
En fait je viens de m'apercevoir qu'au moment de la copie dans le nouveau classeur, une ligne était supprimée.
Je suis passé en mode débogage et j'ai l'impression que le problème vient de la variable I à laquelle on retire 1.
wsi.Rows(lf & ":" & I - 1).Copy wsm.Range("a" & 2).
Sub creeclasseurauto()
Dim chem As String 'déclare la variable chem (Chemin)
chem = ThisWorkbook.Path & "\" 'définit la variable chem
Dim wb As ThisWorkbook
Dim wbm As Workbook
Set wsi = ThisWorkbook.Worksheets("Index")
With wsi
With .Range("A:K")
.Sort Key1:=wsi.Range("H2"), Order1:=xlAscending, Header:=xlYes
.Sort Key1:=wsi.Range("B2"), Order1:=xlAscending, _
Key2:=wsi.Range("A2"), Order2:=xlAscending, _
Key3:=wsi.Range("F2"), Order3:=xlAscending, Header:=xlYes
End With
End With
dli = wsi.Range("A" & Rows.Count).End(xlUp).Row
For I = 2 To dli
If marque = "" Then
marque = wsi.Range("B" & I)
Sheets(Array("GAB_1", "GAB_2")).Copy
Set wbm = ActiveWorkbook 'Workbooks.Add
wbm.Sheets.Add(Before:=wbm.Sheets(1)).Name = "Index"
Set wsm = wbm.Worksheets(1)
wsi.Rows(1).Copy wsm.Range("A1")
lf = I
End If
If marque <> wsi.Range("B" & I) Or I = dli Then
wsi.Rows(lf & ":" & I - 1).Copy wsm.Range("a" & 2)
'Worksheets(Array("GAB_1", "GAB_2")).Copy
wbm.SaveAs Filename:=chem & marque & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 'renommer
wbm.Close
marque = ""
End If
Next I
Set wsi = Nothing
End Sub
Si je retire -1 cela fonctionne bien, toutes mes lignes sont recopiées dans les fichiers des Marques BMW et HONDA
Lorsque je lance la macro dans chaque Marque; j'ai une erreur liée au tri des feuilles
Cordialement