Sub extract()
Application.ScreenUpdating = False
' ws1= reference à la feuille des clients
Set ws1 = Worksheets("Feuil1")
' i pointeur de ligne dans la feuille clients
i = 2
' nplc client en cours de traitement
nplc = ""
' on parcourt la feuille des clients
While ws1.Cells(i, "B") <> 0
' si le numéro de client sur la ligne i est différent du client en cours
If ws1.Cells(i, "B") <> nplc Then
' si client en cours est non blanc
If nplc <> "" Then
' on ajoute des formule et H2 et I2 sur l'extrait client
ws2.Range("H2").FormulaR1C1 = "=SUM(C[-3])"
ws2.Range("I2").FormulaR1C1 = "=SUM(C[-3])"
' on sauve le classeur de ce client
wb.SaveAs ws2.Name & ".xlsx"
wb.Close
End If
' on crée un nouveau classeur extrait client
' wb classeur extrait client
Set wb = Workbooks.Add
' ws2 feuille extrait client
Set ws2 = wb.Worksheets(1)
' nplc = client en cours
nplc = ws1.Cells(i, "B")
Application.StatusBar = "client " & nplc & " en cours de création"
ws2.Name = "client " & nplc
' on y copie la ligne titre
ws1.Range("A1:I1").Copy ws2.Range("A1")
' j pointeur de ligne dans le classeur extrait client
j = 1
End If
' si on n'a pas (A<2 ET B<4) sur cette ligne
If Not (ws1.Range("a" & i) < 2 And ws1.Range("B" & i) < 4) Then
' incrémente pointeur de ligne
j = j + 1
'on copie la ligne
ws1.Rows(i).Copy ws2.Range("A" & j)
End If
' on passe à la ligne client suivante
i = i + 1
Wend
' on ferme le dernier classeur
wb.SaveAs ws2.Name & ".xlsx"
wb.Close
Application.ScreenUpdating = True
Set ws1 = Nothing
Set ws2 = Nothing
Application.StatusBar = "traitement terminé"
End Sub
ps n'oublie pas que tu as en face de toi des bénévoles qui n'ont
1) ni l'obligation de t'aider
2) ni l'obligation de te répondre dans les délais que tu souhaites
je fais référence à ton message "plus personne pour m'aider"