Macro qui ouvre nouveau classeur et exécute autre macro dans nouveau class

Bonjour

Je suis nouveau sur ce forum. Trouvant à chaque fois les solutions à mes nombreux problèmes sur Excel grâce a vos sujets de discutions, je n'ai jamais senti le besoin de venir vous demander de l'aide. Cependant depuis un moment je bloque sur un problème en VBA, je m'en remet tout naturellement à vous en espérant que vous puissiez m'aider.

Le problème est le suivant : J'ai créer un classeur Excel dans lequel j'ai enregistrer une macro qui a l'activation de cette dernière effectue un transfert de plusieurs fichiers Excel ( classeurs ) contenu dans un répertoire vers un seul classeur.

En d'autre terme la macro que j'ai créer fusionne plusieurs fichiers Excel en un seul classeurs ( toutes les feuilles/Onglets des classeurs Excel sont transférés dans un seul classeur Excel )

Jusque la tout marche comme prévu - Voici le code de la macro en question pour mieux comprendre :

Sub Bouton1_Cliquer()

Path = "Z:\Fichiers Exemples\"

Filename = Dir(Path & "*.xlsx")

Do While Filename <> ""

Workbooks.Open Filename:=Path & Filename, ReadOnly:=True

For Each Sheet In ActiveWorkbook.Sheets

Sheet.Copy After:=ThisWorkbook.Sheets(1)

Next Sheet

Workbooks(Filename).Close

Filename = Dir()

Loop

End Sub

Le problème commence après :

En effet j'ai créer une autre macro qui ouvre un nouveau classeur non enregistrer. Je souhaiterai ainsi a l'ouverture de ce nouveau classeur Excel non enregistrer que la macro que j'ai citer au dessus s’exécute dans ce nouveau classeur créer.

J'ai donc commencer a faire ce code :

Sub AZERTY()

Workbooks.Add

With ActiveWorkbook

Application.Run "T.E.S.T.xlsm!Bouton1_Cliquer"

End With

End Sub

Cependant la macro "Bouton1_Cliquer" s’exécute bel et bien mais pas dans le nouveau classeur créer

Je précise que la première macro est contenu dans un module "module1" d'un projet VBA et que la deuxième macro "AZERTY" est contenu dans un autre module d'un projet VBA

Je vous remercie d'avance pour toute aide ou indice car je bloque vraiment sur ce problème qui parait simple pourtant

Cordialement,

D37Excel

Bonjour,

A+

Bonjour,

Essaie :

Sub Bouton1_Cliquer()
Dim Cible As Workbook, chemin$, Filename$, o As Worksheet

Workbooks.Add
Set Cible = ActiveWorkbook
   chemin = "D:SOS\"   '"Z:\Fichiers Exemples\"
   Filename = Dir(chemin & "*.xlsx")
      Do While Filename <> ""
      Workbooks.Open Filename:=chemin & Filename, ReadOnly:=True
      For Each o In ActiveWorkbook.Sheets
      o.Copy After:=Cible.Sheets(1)
      Next o
      Workbooks(Filename).Close
      Filename = Dir()
      Loop
End Sub

Sub AZERTY()
Application.Run "Bouton1_Cliquer"
End Sub

Nota il n'esst pas conseillé d'utiliser comme variable des mots qui font partie du vocabulaire Excel ou qui n'existent pas mais qui peuvent prèter à équivoque.

("Path, Sheet, Cell...")

A+

Bonjour,

Hum... Tu as oublié la seule macro qui est véritablement intéressante !

"Bouton1_Cliquer !"

A+

Bonjour galopin01

Je ne comprend pas bien ton explication, par oublié la macro "Bouton1_Cliquer !" tu veux dire que je ne fait pas appel a cette macro dans le programme Sub AZERTY() ? Pourtant je fais bien un Application.Run ??

En attente de réponses, merci

Mauvaise manip de ma part lire ma réponse précédente...

Bon Heu... La Sub AZERTY ne sert pas à grand chose (Elle rend juste inutile le bouton1...)

A+

Bonjour,

Essaie :

Sub Bouton1_Cliquer()
Dim Cible As Workbook, chemin$, Filename$, o As Worksheet

Workbooks.Add
Set Cible = ActiveWorkbook
   chemin = "D:SOS\"   '"Z:\Fichiers Exemples\"
   Filename = Dir(chemin & "*.xlsx")
      Do While Filename <> ""
      Workbooks.Open Filename:=chemin & Filename, ReadOnly:=True
      For Each o In ActiveWorkbook.Sheets
      o.Copy After:=Cible.Sheets(1)
      Next o
      Workbooks(Filename).Close
      Filename = Dir()
      Loop
End Sub

Sub AZERTY()
Application.Run "Bouton1_Cliquer"
End Sub

Nota il n'esst pas conseillé d'utiliser comme variable des mots qui font partie du vocabulaire Excel ou qui n'existent pas mais qui peuvent prèter à équivoque.

("Path, Sheet, Cell...")

A+

Re

Je viens de voir ton message j'essaye le code et je te tiens au courant merci beaucoup

Supprimer le "D:SOS" qui m'a servi à faire un test

Bonjour,

Absolument rien compris au but de la manœuvre

Ouvrir un nouveau fichier pour lancer un macro qui va ouvrir un fichier existant qui lui même deviendra

le fichier actif

Supprimer le D:SOS qui m'a servi à faire un test

Je viens de tester ton code et ça marche très bien ! Merci infiniment

et comme tu la dit la fonction AZERTY() ne sert plus a rien du coup

Bonjour,

Absolument rien compris au but de la manœuvre

Ouvrir un nouveau fichier pour lancer un macro qui va ouvrir un fichier existant qui lui même deviendra

le fichier actif

Bonjour

Oui mon explication est peut être farfelue mais pour faire simple je souhaitait fusionner les fichiers excel en un seul nouveau classeur non enregistrer.

Bonjour,

Absolument rien compris au but de la manœuvre

Ouvrir un nouveau fichier pour lancer un macro qui va ouvrir un fichier existant qui lui même deviendra

le fichier actif

Bonjour

Oui mon explication est peut être farfelue mais pour faire simple je souhaitait fusionner les fichiers excel en un seul nouveau classeur non enregistrer.

Ha ok donc la première macro pouvait contenir l'ouverture des 2 fichiers en même temps comprend mieux

Rechercher des sujets similaires à "macro qui ouvre nouveau classeur execute class"