Appliquer une formule à toutes les lignes d'une colonne automatique

Bonjour,
Je dois appliquer une formule à toutes les lignes d'une colonne Z à partir de la ligne 5
=IF(X5="","",X5-Y5)
=IF(X6="","",X6-Y6)
=IF(X7="","",X7-Y7)
......
Tout cela jusqu'à la dernière ligne contenant des donnees et avec une macro dans la feuille soit automatique sans bouton
Merci d'avance.

Bonjour,

A tester :

Sub MepFormule()

Dim DerniereLigne As Long
Dim AireZ As Range
Dim Sh As Worksheet

    Set Sh = ActiveSheet ' A adpater
    With Sh
         DerniereLigne = .Cells(.Rows.Count, "X").End(xlUp).Row '.Range("A1").SpecialCells(xlCellTypeLastCell).Row
         Set AireZ = .Range(.Cells(5, "Z"), .Cells(DerniereLigne, "Z"))
         AireZ.FormulaR1C1 = "=IF(RC[-2]="""","""",RC[-2]-RC[-1])"
    End With
    Set Sh = Nothing: Set AireZ = Nothing

End Sub

mecri

mais je veux applique sans bouton de tell sorte automatique

Private Sub Worksheet_Change(ByVal Target As Range)

merci

Sur quelle cellule vous déclenchez cet événement ?

sur la colone Z

A partire de la ligne 5

De mon point de vue, ce n'est pas cohérent de déclencher l'événement sur la colonne Z.

Au minima, c'est sur les colonnes X ou Y.

Dans le module de votre onglet

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

      If Target.Count > 1 Then Exit Sub

      If Not Intersect(Target, Columns("X:Y")) Is Nothing Then
         If Target.Row > 4 Then
            MepFormule ActiveSheet
         End If
      End If

End Sub

Dans un module standard

Option Explicit

Sub MepFormule(ByVal Sh As Worksheet)

Dim DerniereLigne As Long
Dim AireZ As Range

    With Sh
         If .Cells(.Rows.Count, "X").End(xlUp).Row > .Cells(.Rows.Count, "Y").End(xlUp).Row Then
            DerniereLigne = .Cells(.Rows.Count, "X").End(xlUp).Row
         Else
            DerniereLigne = .Cells(.Rows.Count, "Y").End(xlUp).Row
         End If
         Set AireZ = .Range(.Cells(5, "Z"), .Cells(DerniereLigne, "Z"))
         AireZ.FormulaR1C1 = "=IF(RC[-2]="""","""",RC[-2]-RC[-1])"
    End With
    Set AireZ = Nothing

End Sub

Excellent travail merci bcp

Rechercher des sujets similaires à "appliquer formule toutes lignes colonne automatique"