Bonjour Jonathan, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim V As Variant 'déclare la variable V (Valeur)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set O = Sheets("Coûts, Qtés & Ecart entré (2") 'définit l'onglet O (à adapter)
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
V = O.Cells(DL, 1) 'définit la variable V (valeur de la dernière cellule éditée de la colonne A)
For I = DL - 1 To 2 Step -1 'boucle inversée de l'avant-dernière ligne éditée à la ligne 2
'si la cellue est vide, envoie la valeur V, sinon, redéfinit la varialble V avec la valeur de la cellule
If O.Cells(I, 1).Value = "" Then O.Cells(I, 1).Value = V Else V = O.Cells(I, 1).Value
Next I 'prochaine ligne de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub