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
- Messages
- 9'246
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
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