Combiner deux macros "Private Sub Worksheet_Change(ByVal Target As Range)"

c.the

XLDnaute Nouveau
Bonjour,

J'aimerais arriver à combiner deux macros "Private Sub Worksheet_Change(ByVal Target As Range)"

La première est celle-ci :

Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Synthèse")
L = Application.Match([c10], .[a:a], 0)
'---mise à jour de la feuille Fiche Achat---
Set Target = Intersect(Target, [c10])
If Not Target Is Nothing Then
Application.EnableEvents = False
If IsError(L) Then
Range("c11:c13,k16,c16,c21,c20,l21,l20,a24") = ""
Else
[c10] = .Range("a" & L)
[c12] = .Range("b" & L)
[c13] = .Range("c" & L)
[k16] = .Range("d" & L)
[c16] = .Range("e" & L)
[c21] = .Range("f" & L)
[c20] = .Range("g" & L)
[l21] = .Range("h" & L)
[l20] = .Range("i" & L)
[a24] = .Range("j" & L)
[j24] = .Range("l" & L)
[o24] = .Range("k" & L)
End If
Application.EnableEvents = True
End If
'---mise à jour de la feuille Synthèse---
If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
If L = 2 Then Exit Sub
.Range("a" & L) = [c10]
.Range("b" & L) = [c12]
.Range("c" & L) = [c13]
.Range("d" & L) = [k16]
.Range("e" & L) = [c16]
.Range("f" & L) = [c21]
.Range("g" & L) = [c20]
.Range("h" & L) = [l21]
.Range("i" & L) = [l20]
.Range("j" & L) = [a24]
.Range("k" & L) = [o24]
.Range("l" & L) = [j24]
End With
End Sub

Cette macro est sur une feuille nommée Achat1, elle permet d'aller chercher des informations dans la feuille Achat1 et les inscrire dans un tableau de synthèse dans la feuille "synthèse". La deuxième partie de la macro permet que lorsque des informations sont modifées dans la feuille Achat1 elles soient également modifier automatiquement dans la feuille synthèse.

J'aimerais créer le même principe sur une deuxième feuille de synthèse qui a besoin d'informations différentes compris également dans la feuille Achat1.
J'ai créé celle là exactement sur le même modèle :

Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("PEDIDO FRS TIERS")
L = Application.Match([c10], .[a:a], 0)
'---mise à jour de la feuille Fiche Achat---
Set Target = Intersect(Target, [c10])
If Not Target Is Nothing Then
Application.EnableEvents = False
If IsError(L) Then
Range("c11:c13,k16,c16,c21,c20,l21,l20,a24") = ""
Else
[c11] = .Range("a" & L)
[c10] = .Range("b" & L)
[c9] = .Range("c" & L)
[k16] = .Range("d" & L)
[l17] = .Range("e" & L)
[b34] = .Range("f" & L)
[d34] = .Range("g" & L)
[n34] = .Range("h" & L)
[p34] = .Range("i" & L)
[r34] = .Range("j" & L)
[h20] = .Range("k" & L)
[h21] = .Range("n" & L)
[c12] = .Range("o" & L)
End If
Application.EnableEvents = True
End If
'---mise à jour de la feuille Pedidos---
If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
If L = 2 Then Exit Sub
.Range("a" & L) = [c11]
.Range("b" & L) = [c10]
.Range("c" & L) = [c19]
.Range("d" & L) = [k16]
.Range("e" & L) = [l17]
.Range("f" & L) = [b34]
.Range("g" & L) = [d34]
.Range("h" & L) = [n34]
.Range("i" & L) = [p34]
.Range("j" & L) = [r34]
.Range("k" & L) = [h20]
.Range("n" & L) = [h21]
.Range("o" & L) = [c12]

End With
End Sub

Cependant, ça ne fonctionne pas car elles ont le même nom. J'ai essayer de les combiner et de les mettre dans une même macro mais je n'ai pas réussi.

Je vous remercie d'avance votre et de vous pencher sur le problème.

Merci.
Cordialement.
 

PMO2

XLDnaute Accro
Re : Combiner deux macros "Private Sub Worksheet_Change(ByVal Target As Range)"

Bonjour,

Peut-être mettre chaque procédure dans la fenêtre de code de chaque feuille de synthèse ET NON PAS dans la fenêtre de code de ThisWorkbook.

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Réponses
7
Affichages
315

Statistiques des forums

Discussions
312 143
Messages
2 085 757
Membres
102 963
dernier inscrit
Trinitywasp