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.
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.