Fusion de 2 macros

Bonsoir

je dispose de deux macros sur une meme feuille dont la première est destinée à enregistrer celle ci vers un classeur d'archivage et une seconde macro destinée à nettoyer tout les champs de la meme feuille une fois celle ci enregistrée dans le classeur d'archivage

la première macro est la suivante :

Sub Copie_Feuille()
Dim Chemin As String, Référence_Nom As String

Chemin = ThisWorkbook.Path
Workbooks.Open Filename:=Chemin & "\LAISSEZ PASSER FRET.xls"

Windows("GESTION DES LAISSEZ PASSER.xls").Activate
Sheets("LAISSEZ PASSER FRET").Select
Référence_Nom = Range("H4")
Sheets("LAISSEZ PASSER FRET").Copy Before:=Workbooks("LAISSEZ PASSER FRET.xls").Sheets(1)
ActiveSheet.Name = Référence_Nom
Windows("LAISSEZ PASSER FRET.xls").Close SaveChanges:=True

End Sub

la seconde macro qui consiste à nettoyer les champs de cette feuille est la suivante :

Sub nettoyeur()
'
' nettoyeur Macro
' Macro enregistrée le 20/09/2011 par AHMED
'

'
    ActiveWindow.SmallScroll Down:=-153
    Range("L6:N6").Select
    Selection.ClearContents
    Range("L8:N8").Select
    Selection.ClearContents
    Range("L10:N10").Select
    Selection.ClearContents
    Range("N3:O3").Select
    Selection.ClearContents
    Range("L12:N12").Select
    Selection.ClearContents
    Range("L14:N14").Select
    Selection.ClearContents
    Range("L16:N16").Select
    Selection.ClearContents
    Range("B20:F26").Select
    Selection.ClearContents
    Range("I20:M26").Select
    Selection.ClearContents
    Range("B32:F36").Select
    Selection.ClearContents
    Range("I32:M36").Select
    Selection.ClearContents
    ActiveWindow.ScrollRow = 9
    ActiveWindow.ScrollRow = 18
    ActiveWindow.ScrollRow = 19
    ActiveWindow.ScrollRow = 20
    ActiveWindow.ScrollRow = 21
    ActiveWindow.ScrollRow = 22
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 24
    ActiveWindow.ScrollRow = 25
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 27
    ActiveWindow.ScrollRow = 28
    ActiveWindow.ScrollRow = 29
    ActiveWindow.ScrollRow = 30
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 32
    ActiveWindow.ScrollRow = 33
    ActiveWindow.ScrollRow = 34
    ActiveWindow.ScrollRow = 35
    ActiveWindow.ScrollRow = 36
    ActiveWindow.ScrollRow = 37
    ActiveWindow.ScrollRow = 38
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 40
    ActiveWindow.ScrollRow = 41
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 43
    ActiveWindow.ScrollRow = 44
    ActiveWindow.ScrollRow = 45
    ActiveWindow.ScrollRow = 46
    ActiveWindow.ScrollRow = 47
    ActiveWindow.ScrollRow = 48
    ActiveWindow.ScrollRow = 49
    ActiveWindow.ScrollRow = 50
    ActiveWindow.ScrollRow = 51
    ActiveWindow.ScrollRow = 52
    ActiveWindow.ScrollRow = 53
    ActiveWindow.ScrollRow = 54
    ActiveWindow.ScrollRow = 55
    ActiveWindow.ScrollRow = 56
    ActiveWindow.ScrollRow = 57
    ActiveWindow.ScrollRow = 58
    ActiveWindow.ScrollRow = 59
    ActiveWindow.ScrollRow = 60
    ActiveWindow.ScrollRow = 61
    ActiveWindow.ScrollRow = 62
    Range("D68:O79").Select
    Selection.ClearContents
    Range("D84:O99").Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=27
    Range("D105:O108").Select
    Selection.ClearContents
    Range("D114:O121").Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=15
    Range("B128:K138").Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=36
End Sub

ma question est donc , est il possible de faire fusionner ces deux macros pour au final n'avoir qu'un seul bouton plutot que deux

qui executerait l'enregistrement de cette feuille vers le classeur d'archivage et qui ensuite effacerai immediatement le contenu de celle ci ?

Merci pour vos avis sur la question

Bonjour Rocket 4 le forum

bon alors j'ai pas le temps de modifier ta macro mais regardes tu ajoutes Call nettoyeur dans ta première macro et elle ira chercher la deuxième avant de fermer

a+

papou

  Sub Copie_Feuille()
    Dim Chemin As String, Référence_Nom As String

    Chemin = ThisWorkbook.Path
    Workbooks.Open Filename:=Chemin & "\LAISSEZ PASSER FRET.xls"

    Windows("GESTION DES LAISSEZ PASSER.xls").Activate
    Sheets("LAISSEZ PASSER FRET").Select
    Référence_Nom = Range("H4")
    Sheets("LAISSEZ PASSER FRET").Copy Before:=Workbooks("LAISSEZ PASSER FRET.xls").Sheets(1)
    ActiveSheet.Name = Référence_Nom
    Windows("LAISSEZ PASSER FRET.xls").Close SaveChanges:=True
        Call nettoyeur
    End Sub

par contre pour ta macro nettoyeur tu peux déjà faire à la place de

Range("L6:N6").Select
    Selection.ClearContents
    Range("L8:N8").Select
    Selection.ClearContents
    Range("L10:N10").Select
    Selection.ClearContents
    Range("N3:O3").Select
    Selection.ClearContents
    Range("L12:N12").Select
    Selection.ClearContents
    Range("L14:N14").Select

voilà de quoi faire le même chose que tout le bout de ta macro copié

range("L6:N6,L8:N8,L10:N10,N3:O3,L12:N12,L14:N14").clearcontents

Merci pour ton aide Paritec , te souhaitant une bonne soirée

Bonsoir à tous,

suggestion:

Plutôt que cette longue macro "Nettoyeur"

tu pourrais sélectionner toutes les cellules à effacer,

tu nomme cette plage "Efface" (par exemple)

et à la fin de la 1ère macro, tu écris

Range("Efface").ClearContents

Amicalement

Claude

Merci aussi , je n'ai plus que l'embarras du choix des solutions à adopter !

dans tout les cas je vous remercie "dubois " "paritec" et "yvouille" , vous faites un travail d'aide formidable auprès de ceux

qui s'initient à excel

Rechercher des sujets similaires à "fusion macros"