Combiné deux worksheet_change

Bonjour , je veux Combiné ce deux worksheet_change

Macro 1
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim lRow As Long
lRow = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row

For i = 5 To lRow
If Not Intersect(Target, Range("j" & i)) Is Nothing Then
Range("w" & i).Value = Range("j" & i).Value
End If
Next
End Sub


Macro 2
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


Merci

bonjour,

une proposition,

adaptation de ta macro 1 (worksheet_change) uniquement

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'on sort de la macro si plus d'une cellule modifiée
    i = Target.Row ' ligne de la cellule modifiée
    If i < 5 Or Target.Column <> 10 Then Exit Sub ' on sort si ligne <5 ou si colonne <>"J"
    On Error Resume Next
    Application.EnableEvents = False 'désactive la gestion d'évenement
    Range("w" & i).Value = Target.Value 'mettre la valeur de la cellule modifier dans le meme ligne en colonne "w"
    Application.EnableEvents = True 'réactive la gestion d'événement
    On Error GoTo 0
    MepFormule (Target.Parent) 'appel de la mise à jour des formules pour cette feuille
End Sub

Merci beaucoup pour votre aide mais une eureur apparaitre

ereur vba

Rebonjour,

Comme tu as demandé à ce que les variables soient explicitement définies (option explicit), il faut ajouter une définition de la variable i.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i as Long
If Target.Count > 1 Then Exit Sub 'on sort de la macro si plus d'une cellule modifiée
    i = Target.Row ' ligne de la cellule modifiée
    If i < 5 Or Target.Column <> 10 Then Exit Sub ' on sort si ligne <5 ou si colonne <>"J"
    On Error Resume Next
    Application.EnableEvents = False 'désactive la gestion d'évenement
    Range("w" & i).Value = Target.Value 'mettre la valeur de la cellule modifier dans le meme ligne en colonne "w"
    Application.EnableEvents = True 'réactive la gestion d'événement
    On Error GoTo 0
    MepFormule (Target.Parent) 'appel de la mise à jour des formules pour cette feuille
End Sub

Ce code doit être dans le module de la feuille sur laquelle tu veux que la gestion d'un changement de cellule soit géré.

Merci bcp ca marche bien maintenant

Rechercher des sujets similaires à "combine deux worksheet change"