Exécuter une macro écrite dans un autre classeur

poups

XLDnaute Occasionnel
Bonjour,
Je travaille sur un fichier
Je transfert des données du fichier sur un autre fichier apres quoi je souhaite exécuter une macro dans ce 2 eme fichier
Tous marche (Ouverture fichier / Transfert de donnée / pilotage macro)
Le PB c'est qu'il ne trouve pas la macro et me met un message d'erreur ...

HTML:
Sub Notationt()

'Notation.Show

Dim C_Source As Workbook
Dim C_Destination As Workbook
Dim Notation As Workbook


Dim Chemin As String
'Dim NomDI As String

 
User = Application.UserName
Chemin = "C:\Users\" & User & "\Desktop\"
Nfichier = Worksheets("GestionDTS").Range("G9").Value

Set C_Source = Workbooks("" & Nfichier & ".xlsm")
Workbooks.Open ("C:\users\" & User & "\Documents\ModeleSFF\Fiches de notations individuelle RPS-SIS.xlsm")
Set C_Destination = Workbooks("Fiches de notations individuelle RPS-SIS.xlsm")

C_Destination.Worksheets("Notation DI").Range("E18").Value = C_Source.Worksheets("GestionDTS").Range("G9").Value
C_Destination.Worksheets("Notation DI").Range("E19").Value = C_Source.Worksheets("DI-MES").Range("F10").Value
C_Destination.Worksheets("Notation DI").Range("E21").Value = C_Source.Worksheets("GestionDTS").Range("F4").Value

ActiveWorkbook.Save
 
Application.Run "C:\users\" & User & "\Documents\ModeleSFF\Fiches de notations individuelle RPS-SIS.xlsm!toto"


End Sub

Pourtant dans le fichier destination la macro exsite et fonctionne quand je la lance manuellement ...

HTML:
Sub toto()
Notation.Show
End Sub

Peut on m'expliquer ce qui ce passe ?

Merci d'avance
Sylvain
 

Dranreb

XLDnaute Barbatruc
Re : Exécuter une macro écrite dans un autre classeur

Bonsoir.
Je ne pense pas qu'il faille spécifier le chemin si le classeur contenant la macro est ouvert.
En revanche si son nom contient des espaces, il faut peut être l'encadrer d'apostrophes. Ou peut être ne pas le spécifier non plus si c'est le classeur actif.
Cordialement.
 

poups

XLDnaute Occasionnel
Re : Exécuter une macro écrite dans un autre classeur

Bonjour,
Alors j'ai simplifié en suivant vos conseils (?) toujours pareil !
erreur d'éxécution macro '1004' le chemin est bon cela dit que la macro n'existe pas ou qu'elle est désactié ...

Pourtant Le classeur(2) est bien ouvert VB ce met sur ma macro ! et je l'exécute en manu
Je ne comprend plus rien :mad:

Sub Notationt()

'Notation.Show

Dim C_Source As Workbook
Dim C_Destination As Workbook
Dim Notation As Workbook


Dim Chemin As String
Dim Nfichier As String

Chemin = "C:\Users\" & Application.UserName & "\Desktop\"
Nfichier = Worksheets("GestionDTS").Range("G9").Value

Set C_Source = Workbooks("" & Nfichier & ".xlsm")
Workbooks.Open ("C:\users\" & Application.UserName & "\Documents\ModeleSFF\FichesDeNotationsIndividuelleRPS-SIS.xlsm")
Set C_Destination = Workbooks("FichesDeNotationsIndividuelleRPS-SIS.xlsm")

C_Destination.Worksheets("Notation DI").Range("E18").Value = C_Source.Worksheets("GestionDTS").Range("G9").Value
C_Destination.Worksheets("Notation DI").Range("E19").Value = C_Source.Worksheets("DI-MES").Range("F10").Value

ActiveWorkbook.Save

Application.Run "C:\users\" & Application.UserName & "\Documents\ModeleSFF\FichesDeNotationsIndividuelleRPS-SIS.xlsm!toto"

End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Exécuter une macro écrite dans un autre classeur

Bonjour
Essayez d'enregistrer une nouvelle macro pendant que vous demandez l'exécution de votre macro toto, en principe ça vous y engendrera une instruction Application.Run correcte.
 

poups

XLDnaute Occasionnel
Re : Exécuter une macro écrite dans un autre classeur

Bonsoir,
Ben voila mes deux fichier ...
je n'ai toujour pas trouvé pourquoi cela ne marche pas !
merci d'avance de votre aide
sylvain
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Exécuter une macro écrite dans un autre classeur

Extrait de l'aide sur Sub, instruction
PrivateFacultatif. Indique que la procédure Sub n'est accessible qu'à d'autres procédures du module dans lequel elle a été déclarée.
Ils aurait pu ajouter … et aussi par les contrôleurs d'objets, mais en aucun cas depuis un autre module ni par un Run
 
Dernière édition:

poups

XLDnaute Occasionnel
Re : Exécuter une macro écrite dans un autre classeur

Bonjour,
Les "Privates ont été rajouté pour essai à un moment donné
Je les ai enlevé cela ne marche pas mieux

Les deux fichier sont a poser sur le bureau, la macro est dans le module 4 du fichier "DI..." et cel plant à la derniere ligne sur
HTML:
Application.Run "FichesDeNotationsIndividuelleRPS-SIS.xlsm!toto"
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Exécuter une macro écrite dans un autre classeur

Bonjour.
Avez vous essayé de faire fabriquer votre Application.Run par l'enregistreur de macro ?
Moi je ne peux pas parce que c'est du .xlsm, et à la conversion en .xls il fabrique un nom tout simple de la forme Xl00000nnn.xls où il n'y a certainement pas nécessité de délimiter le nom du classeur par des apostrophes.
 

pasquetp

XLDnaute Occasionnel
Re : Exécuter une macro écrite dans un autre classeur

salut à tous

j'ai fait quelque chose de similaire et ca marche : personaliser la barre doutil access rapide

ensuite macro au lieu de commande courante et passer la macro a droite

et ensuite essayer sur le second fichier en cliquant sur le bouton et la macro sappliquera au fichier
 

Dranreb

XLDnaute Barbatruc
Re : Exécuter une macro écrite dans un autre classeur

Avez vous essayé:
VB:
Application.Run "'FichesDeNotationsIndividuelleRPS-SIS.xlsm'!toto"
Voire :
VB:
Application.Run "'FichesDeNotationsIndividuelleRPS-SIS.xlsm!toto'"
 

jpb388

XLDnaute Accro
Re : Exécuter une macro écrite dans un autre classeur

bonjour le forum,Danreb,pasquetp,poups

étant sur 2007 j'ai créer 2 classeurs et j'ai utilisé
Application.Run "FichesDeNotationsIndividuelleRPS-SIS.xlsm!toto"
cela fonctionne parfaitement et bizarrement pas avec les classeurs de poups et j'ai eu beau regarder ses macros je n'ai rien trouvé
 

Discussions similaires

Statistiques des forums

Discussions
312 240
Messages
2 086 514
Membres
103 239
dernier inscrit
wari