Bonjour le fil, bonjour le forum,
Modifie le type des variables DL et I :
Dim DL As Long
Dim I as Long
Mais dans ce cas je coderais plutôt comme ça (sans boucle) :
Sub boucle()
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A
Range("H2").FormulaR1C1 = "=RC[-2]-RC[-1]" 'place la formule dans la colonne H2
Range("H2").AutoFill Range("H2:H" & DL) 'tire la formule vers le bas jusqu'à la ligne DL
End Sub
Sinon pour supprimer des lignes il faut que ta boucle soit inversée de la dernière à la première avec un Step -1, du style :
Sub SupLign()
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
Application.ScreenUpdating = False 'masque les rafraîchissement d'écran
DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A
For I = DL To 2 Step -1 'boucle inversée sur toutes les lignes I de la dernière à la première
'if (-> ici ta condition <-) then Rows(I).Delete
Next I 'prochaine ligne de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissement d'écran
End Sub
Mais avec autant de ligne ça risque de prendre du temps.... Il y a d'autres méthodes plus rapides mais il faudrait que l'on ait un extrait de ton fichier pour voir laquelle serait la mieux adaptée...