En PJ un exemple qui reprend normalement votre besoin, en particulier vous dites
Tant que la valeur en cellule Ligne 9 est vraie
Que j'ai interprété comme, arrêt dès que Ligne 9 = Faux
dans l'exemple que je fournis :
- colonne C : des valeurs pour alimenter la formule en D
- colonne D : la formule à recopier
- Ligne 9 : une formule pour avoir vrai ou faux
après exécution de la macro MacroEtendreFormule, le tableau (en jaune) est bien mis à jour : la formule est propagé jusqu'à la colonne F (G9 étant à FAUX)
si vous devez continuer à étendre après avoir rencontré un FAUX, remplacer le code par celui-ci
Sub MacroEtendreFormule()
Range("D55:D60").Select
Application.CutCopyMode = False
Selection.Copy
i = 0
fin = False
While Not fin
i = i + 1
Select Case Range("D9").Offset(0, i).Value
Case ""
fin = True
Case True
Range("D55:D60").Offset(0, i).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Case False
fin = False
Case Else
fin = True
End Select
Wend
End Sub