Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][VBA][EXCEL] Appel par Call plutôt que Run

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][VBA][EXCEL] Appel par Call plutôt que Run

n°1348155
Bidgii
Posté le 17-04-2006 à 15:16:56  profilanswer
 

Bonjour à tous,
 
une question sans doute "basique"  ;) mais que je ne parviens pas à résoudre tout seul :
 
je souhaite appeler, à partir d'une procédure VBA dans un classeur Excel, une procédure qui se trouve dans un autre classeur Excel.
J'y parviens bien par Application.Run mais pas par Call, ce que je préfèrerais pour pouvoir utiliser un passage de paramètre par référence.
 
Quelqu'un aurait-il une solution ou indication sur ce qui ne va pas dans ma façon de faire ?
 
Mon code d'appel dans Appelant.xls - Module1

Code :
  1. Sub test()
  2.     MsgBox "avant"
  3.     Application.Run ("Appele.xls!Complement" )
  4.     MsgBox "après"
  5.     Call [Appele.xls].[Module1].Complement
  6.     MsgBox "Ca marche !!"
  7. End Sub


 
Ma procédure appelée dans Appele.xls - Module1

Code :
  1. Sub Complement()
  2.     MsgBox "pendant"
  3. End Sub


 
A l'éxécution, j'obtiens bien l'affichage de "Avant", "Pendant", "Après", puis une boite d'erreur run-time code 424 - Object requiered.
 
Merci d'avance pour toute idée  :)

Message cité 1 fois
Message édité par Bidgii le 18-04-2006 à 09:32:40
mood
Publicité
Posté le 17-04-2006 à 15:16:56  profilanswer
 

n°1348501
pifa
Bonjour à tous et toutes
Posté le 18-04-2006 à 07:45:07  profilanswer
 

Bidgii a écrit :

Bonjour à tous,
 
une question sans doute "basique"  ;) mais que je ne parviens pas à résoudre tout seul :
 
je souhaite appeler, à partir d'une procédure VBA dans un classeur Excel, une procédure qui se trouve dans un autre classeur Excel.
J'y parviens bien par Application.Run mais pas par Call, ce que je préfèrerais pour pouvoir utiliser un passage de paramètre par référence.
 
Quelqu'un aurait-il une solution ou indication sur ce qui ne va pas dans ma façon de faire ?
 
Mon code d'appel dans Appelant.xls - Module1

Code :
  1. Sub test()
  2.     MsgBox "avant"
  3.     Application.Run ("Appele.xls!Complement" )
  4.     MsgBox "après"
  5.     Call [Appele.xls].[Module1].Complement
  6.     MsgBox "Ca marche !!"
  7. End Sub


 
Ma procédure appelée dans Appele.xls - Module1

Code :
  1. Sub Complement()
  2.     MsgBox "pendant"
  3. End Sub


 
A l'éxécution, j'obtiens bien l'affichage de "Avant", "Pendant", "Après", puis une boite d'erreur run-time code 424 - Object requiered.
 
Merci d'avance pour toute idée  :)


 
 
Bonjour,
 
Pour appeler une procédure dans un autre classeur, il faut passer par < application.run >, le < call > ne donnant accès qu'aux procédures du classeur appelant, voir l'aide VBA.
 
Cordialement
 
Pifa

n°1348523
Bidgii
Posté le 18-04-2006 à 09:26:42  profilanswer
 

Merci pour cette indication qui m'évitera tout acharnement  ;)
 
En investiguant plus sur les notions de visibilité, j'ai trouvé que l'on pouvait faire fonctionner le <call> sous condition d'ajouter le projet du classeur <appele.xls> dans la liste des projets référencés par le projet du classeur <appelant.xls> (éditeur VBA - Menu "Tools" - References).
 
La syntaxe est bien dans ce cas  

Code :
  1. Call [projetAppele].[Module1].Complement


 
Merci beaucoup pour le soutien  :)  
 
Cordialement,
 
Bidgii


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][VBA][EXCEL] Appel par Call plutôt que Run

 

Sujets relatifs
[RESOLU] VBS : demande d'aide suppression de fichier selon leur datecomment faire macro pour exporter une page excel dans un document word
ouvrir le formulaire d'un doc Excel sous VFP[VBA][Excel] Help ! Problème avec graphique
(Résolu): n'affiche pas le premier registre de mes tablesexécuter un script avec une macro excel
[Résolu] [VBA] Boucle for qui déraille[VBA] [Excel]Evènement Workbook
Plus de sujets relatifs à : [Résolu][VBA][EXCEL] Appel par Call plutôt que Run


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR