Macro dans Macro

Macro dans Macro - VB/VBA/VBS - Programmation

Marsh Posté le 05-09-2005 à 12:10:08    


 Je souhaite créer sous Visual Basic (dans Excel) une macro qui, lorsqu'elle est activée par un bouton sur Excel, permet de lancer une autre macro nommé "alpha" par exemple.  
Malheureusement, je ne connais pas le code à écrire sous VBA pour permettre une telle manipulation.
 
 
Merci de me renseigner.
MARCO

Reply

Marsh Posté le 05-09-2005 à 12:10:08   

Reply

Marsh Posté le 05-09-2005 à 12:27:39    

marcodeloris a écrit :

Je souhaite créer sous Visual Basic (dans Excel) une macro qui, lorsqu'elle est activée par un bouton sur Excel, permet de lancer une autre macro nommé "alpha" par exemple.  
Malheureusement, je ne connais pas le code à écrire sous VBA pour permettre une telle manipulation.
 
 
Merci de me renseigner.
MARCO


tu créées une fonction Alpha()
et tu ajoutes au bouton crée l'vènement onclick) dans lekel tu lances Alpha()...

Reply

Marsh Posté le 05-09-2005 à 12:36:36    

je n'ai pas bien compris la solution que tu me proposes.
J'ai crée une macro nommé "lancer_alpha". J'aimerai qu'en l'exécutant, elle exécute automatiquement la macro "alpha"
Que dois je mettre à la place des ?
 
Sub lancer_alpha()
?
?
?
End Sub
 
[je pense qu'il doit y avoir un code permettant d'activer Sub alpha()
...
End Sub
mais je ne le connais pas!!]

Reply

Marsh Posté le 05-09-2005 à 12:42:25    

ta macro alpha doit etre concue sous la forme de function
dim function Alpha() as long
...
end function

Reply

Marsh Posté le 05-09-2005 à 13:16:08    

bonjour,
Sub lancer_alpha()
...
alpha
End Sub

Reply

Marsh Posté le 05-09-2005 à 14:03:11    

Call alpha()
Lance la sub nomée alpha


---------------
now : do nothing
Reply

Marsh Posté le 05-09-2005 à 14:19:33    

j'ai bien écris le code mais ca ne marche pas (l'autre macro est enregistrée dans un autre classeur que j ai bien entendu ouvert)
 
Sub lancer_alpha()
 
    Workbooks("MO Interne.xls" ).Activate
    Call alpha
     
End Sub
 
[knakes les parenthèses après alpha sont effacés automatiquement par visual basic]

Reply

Marsh Posté le 05-09-2005 à 14:22:45    

le call alpha marche si je me trouve dans le meme classeur apparemment... J'ai essayé

Reply

Marsh Posté le 05-09-2005 à 14:48:21    

alors comment faire dans le cas présent ou l'autre macro n'est pas dans le même classeur.

Reply

Marsh Posté le 05-09-2005 à 15:27:41    

Aurais tu essayé avec :
Application.Run "nom_du_fichier.xls!nom_du_module.nom_de_ta_macro"
 
Si ton fichier reste ouvert pendant l'exécution de la macro chez moi ça marche.
 

Reply

Marsh Posté le 05-09-2005 à 15:27:41   

Reply

Marsh Posté le 05-09-2005 à 17:47:36    

alors wataShi, ta méthode fonctionne (j'ai essayé cette méthode avec deux fichiers ouverts comme tu l'as précisé.
Toutefois, dans mon programme, j ai effectué la même méthode et ça ne marche pas. dans ce programme il y 5 fichiers ouverts (mais je ne vois pas en quoi ca pourrait gêner), cependant excel m'indique l'erreur d'exécution 1004 : impossible de trouver "nom_du_fichier.xls!nom_du_module.nom_de_ta_macro" .  
je ne vois pas pourquoi!

Reply

Marsh Posté le 05-09-2005 à 20:36:46    

les parenthèses s'enlèvent c'est normal, elle contiennent les options de la macro, s'il n'y a rien on les enlève.


---------------
now : do nothing
Reply

Marsh Posté le 05-09-2005 à 20:57:15    

bon apparement je n'ai plus ces problèmes avec Excel 2003.
Dire que ce souci m'a pris des heures avec Excel 2000.
J'espère ne plus rencontrer ce type de problème ... merci à tous

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed