Fusion de 2 Macros

Bonjour,

j'aimerais fusionner 2 macro pour que toutes ces actions s'exécutent en 1 clic. Les 2 macros font la meme chose mais sur 2 feuilles différentes. Pouvez-vous m'aider avec cela svp?

Merci!

Sub CopierCollerToutPlanification()
'
' Macro1 Macro
'(Ouvrir Processus0 et un document vierge Processus ouvert avant d'activer cette macro)

Dim WsC As Worksheet
Dim T, Plages
Dim i As Long, j As Long
Dim P1 As String, P2 As String, P3 As String, P4 As String, P5 As String, P6 As String, P7 As String, P8 As String, P9 As String, P10 As String
    Set WsC = Workbooks("Processus.xlsm").Worksheets("1. Planification")
    P1 = "M115:M134,M136:M143,M145:M152,M154:M157,M159:M178"
    P2 = "O42:O53,O55:O68,O70:O71,O73:O92,O94:O113,O115:O134,O136:O143,O145:O152,O154:O157,O159:O178"
    P3 = "U13:U40,U42:U53,U55:U68,U70:U71,U73:U92,U94:U113,U115:U134,U136:U143,U145:U152,U154:U157,U159:U178"
    P4 = "AA13:AA40,AA42:AA53,AA55:AA68,AA70:AA71,AA73:AA92,AA94:AA113,AA115:AA134,AA136:AA143,AA145:AA152,AA154:AA157,AA159:AA178"
    P5 = "AC13:AC40,AC42:AC53,AC55:AC68,AC70:AC71,AC73:AC92,AC94:AC113,AC115:AC134,AC136:AC143,AC145:AC152,AC154:AC157,AC159:AC178"
    P6 = "AE55:AE68,AE70:AE71,AE73:AE92,AE94:AE113,AE115:AE134,AE136:AE143,AE145:AE152,AE154:AE157,AE159:AE178"
    P7 = "AG13:AG40,AG42:AG53,AG55:AG68,AG70:AG71,AG73:AG92,AG94:AG113,AG115:AG134,AG136:AG143,AG145:AG152,AG154:AG157,AG159:AG178,W185,AG185,AG186,B184:Q187"
    P8 = "E3,E5,E7,E9,J3:P3,J5:P5,J7:P7,J9:P9,U3:W3,U5:W5,U7:W7"
    P9 = "AE3:AF3,AE5:AF5,AE7:AF7,AE9:AF9,K13:K40,K42:K53,K55:K68,K70:K71,K73:K92,K94:K113,K115:K134,K136:K143,K145:K152"
    P10 = "K154:K157,K159:K178,M13:M40,M42:M53,M55:M68,M70:M71,M73:M92,M94:M113"
    Plages = Array(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)
    For j = 0 To UBound(Plages)
        T = Split(Range(Plages(j)).Address, ",")
        For i = 0 To UBound(T)
            Sheets("1. Planification").Range(T(i)).Copy WsC.Range(T(i))
        Next i
    Next j
End Sub

Sub CopierCollerToutActions()
'
' Macro1 Macro
'(Ouvrir Processus0 et un document vierge Processus ouvert avant d'activer cette macro)

Dim WsC As Worksheet
Dim T, Plages
Dim i As Long, j As Long
Dim P1 As String, P2 As String, P3 As String
    Set WsC = Workbooks("Processus.xlsm").Worksheets("2. Actions")
    P1 = "E2:N4"
    P2 = "E5:N5"
    P3 = "C6:N82"
    Plages = Array(P1, P2, P3)
    For j = 0 To UBound(Plages)
        T = Split(Range(Plages(j)).Address, ",")
        For i = 0 To UBound(T)
            Sheets("2. Actions").Range(T(i)).Copy WsC.Range(T(i))
        Next i
    Next j
End Sub

Il te suffit d'enlever le "End sub" de la première macro et la ligne "sub [...]" de la deuxième, qui annonce respectivement la fin et le début d'une macros =)

Watewmark a écrit :

Il te suffit d'enlever le "End sub" de la première macro et la ligne "sub [...]" de la deuxième, qui annonce respectivement la fin et le début d'une macros =)

Ça ne fonctionne pas, cela me dit: "Erreur de compilation: Déclaration existante dans la portée en cours" . Il semble qu'il faille faire plus de modifications aux 2 macros

Je ne vais pas trop m'avancer alors, je n'y connais pas grand chose en macros mais ça me semblait logique

J'ai trouvé ce topic, il y aura surement ta réponse

https://forum.excel-pratique.com/excel/fusion-de-2-macros-t25681.html

Finalement, c'était une bonne piste, il fallait juste savoir comment l'appliquer. Le code ci-dessous a fonctionné:

Sub CopierTout()
Call CopierCollerToutPlanification
Call CopierCollerToutActions
End Sub
Rechercher des sujets similaires à "fusion macros"