Sub AutomatiserTache()
Dim ws As Worksheet
Dim lastRow As Long
Dim Res As Variant
' Définir la feuille de travail active
Set ws = ThisWorkbook.Sheets(1)
' Insérer une colonne vide en A
ws.Columns("A").Insert Shift:=xlToRight
' Nommer la cellule A2 : clinique
ws.Range("A2").Value = "Clinique"
' Supprimer la 1ère ligne
ws.Rows(1).Delete
' Appliquer un filtre sur la nouvelle 1ère ligne
ws.Rows(1).AutoFilter
' Supprimer les lignes "Total classe x" en colonne B
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
For i = lastRow To 2 Step -1
If InStr(1, ws.Cells(i, "B").Value, "Total classe", vbTextCompare) > 0 Then
ws.Rows(i).Delete
End If
Next i
' Supprimer les lignes vides en colonne B
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
For i = lastRow To 2 Step -1
If ws.Cells(i, "B").Value = "" Then
ws.Rows(i).Delete
End If
Next i
' Renommer la cellule F1 : Solde N
ws.Range("F1").Value = "Solde N"
' Calculer en colonne F à partir de la ligne 2: colonne D (débit) - colonne E (crédit)
lastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
For i = 2 To lastRow
Res = ws.Cells(i, "D").Value - ws.Cells(i, "E").Value
ws.Cells(i, "F").Value = IIf(Res <> 0, "Erreur", Res): Res = Empty
Next i
' Pour chaque ligne qui a un solde en F=0, alors supprimer la ligne
For i = lastRow To 2 Step -1
If ws.Cells(i, "F").Value = 0 Then
ws.Rows(i).Delete
End If
Next i
End Sub