Message d'erreur avec APPLICATION.RUN

Résolu
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012 - 30 janv. 2012 à 10:07
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 janv. 2012 à 11:51
Bonjour à tous et à toutes.


J'essaie d'executer une macro sous 2010,lors du débogage en mode "PAS à PAS",J'obtiens sur cette ligne :


Application.Run "NomFichier.xls!maFonction"


Le message d'erreur suivant :
erreur d'execution 1004
La méthode "RUN" de l'objet _Application a echoué

Quelqu'un aurait une idée ?

Merci à tous et à toutes

12 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 11:20
Oh !
Relis mon dernier message : tu peux le faire sur un classeur non oyuvert, comme je te l'ai exposé !

Mais (et c'est un autre aspect) : je reste assez étonné de ce que tu appelles une macro(ou routine ou fonction, peu importe) d'un autre classeur, sans lui passer de paramètre. Que doit faire cette procédure qui serait ainsi valable pour tout (par curiosité) ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 11:51
Hé bé !
Tu ne trouves pas que c'est un peu comme utiliser un marteau pour mettre une punaise sur un tableau ?
Sans compter que le jour où ton autre classeur disparaîtrait, ou serait renommé ou déplacé, il te coûtera très cher, ce marteau !





____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 10:18
Bonjour,

Deux causes possiblkes (et tu es seul à le savoir) :
1) le classeur NomFichier.Xls n'est pas ouvert (ou mal orthographié)
2) la macro mafonction est dans un module que tu n'as pas défini.

Exemple d'utilisation ( pour classeur Fichier.xls ouvert)
Application.Run "Fichier.xls!Module1.Test"


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 10:36
Ah !
J'ai oublié de parler d'une 3ème cause possible :
3) un nom de classeur comportant des espaces ou signe -


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012
30 janv. 2012 à 10:43
Oui cela fonctionne en ajoutant le Numéro du module.

Maintenant j'ai le meme soucis sur la meme instruction sauf que la

je suis sur monClasseurA

et je fais ceci dans une fonction

Application.Run "monClasseeurB.xls!maFonctionde
monClasseurB"
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

et j'ai le meme message d'erreur il faut ajouter le nom du classeur devant maFonctionde
monClasseurB"
?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 10:54
Mets (par copier/coller) ce que tu as écrit (pas de simulation, mais ce que tu as exactement dans ton code), en précisant :
- les classeurs ouverts à ce moment-là.
- le module où se trouve la fonction appelée par run


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012
30 janv. 2012 à 11:05
re,

Donc j'ai deux classeurs ,un qui s'appelle
TestFichier.xls et un autre TestFichierBis.xls

La je suis dans le classeur TestFichier.xls et j'ai la routine ci dessous dans le module 5 du classeur TestFichier.xls

sub FinalF
    Application.Run "TestFichierBis.xls!Module3.SortieF"
end Sub


Le classeur TestFichierBis.xls n'est pas ouvert


Donc j'ai toujours l'erreur 1004
Merci à toi.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 11:09
Le classeur TestFichierBis.xls n'est pas ouvert

et que t'ai-je dit dans mon message de 10h18 (cause possible n° 1) ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 235
30 janv. 2012 à 11:15
S'il est fernmé, c'est le chemin complet, qu'il faut donner (c'est évident, car comment saurait-il où se troucve ce classeur ?!)
exemple, donc :
Application.Run "'C:\Mes documents\TestFichierBis.xls'!Module3.SortieF"

Note l'ajout de simple-quotes '
Juste pour le cas où ce chemin contiendrait des espaces.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012
30 janv. 2012 à 11:16
oui,tout à fait .
Y-t-il possibilité de faire un WorkBook.Open juste avant ,pour éviter de l'ouvrir manuellement ?

Merci à toi
0
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012
30 janv. 2012 à 11:46
re,

Merci à toi pour ta réponse ,cela fonctionne bien..

En faite cette sous -routine sert juste à sortir de la macro sans fermer l'application .

Mais en tout cas cela fonctionne très bien
0
debutVBAEXCEL Messages postés 32 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 6 février 2012
30 janv. 2012 à 11:48
Merci à toi tout fonctionne ..

En fait,la sous routine sert juste à sortir de la macro sans fermer l'pplication ..


Merci mille fois Ucfoutu
0