Executer BOUTON depuis autre classeur VBA
Résolu/Fermé
Anonyme
-
23 sept. 2009 à 15:38
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 23 sept. 2009 à 16:40
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 23 sept. 2009 à 16:40
A voir également:
- Executer BOUTON depuis autre classeur VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Réinitialiser chromecast sans bouton - Guide
- Erreur 1004 vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
3 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
23 sept. 2009 à 15:53
23 sept. 2009 à 15:53
Bonjour,
La solution est de lancer les macros les unes après les autres depuis le classeur actif... ou alors ajouter dans le classeur qui contient les macros, une macro qui lance les autres. Cette macro sera lancée depuis le classeur actif.
Si derrière le bouton, il y a du code (autre que de lancer des macros), il faut l'inclure dans la nouvelle macro.
En règle générale, il faut éviter de coder directement dans l'éditeur d'une feuille. Il est préférable de créer un module indépendant de la feuille pour y mettre le code. Cela permet, comme dans ton cas de pouvoir utiliser le code par d'autres modules ou classeurs, et également, en cas de suppression de la feuille d'éviter de perdre le code ... ^^
;o)
La solution est de lancer les macros les unes après les autres depuis le classeur actif... ou alors ajouter dans le classeur qui contient les macros, une macro qui lance les autres. Cette macro sera lancée depuis le classeur actif.
Si derrière le bouton, il y a du code (autre que de lancer des macros), il faut l'inclure dans la nouvelle macro.
En règle générale, il faut éviter de coder directement dans l'éditeur d'une feuille. Il est préférable de créer un module indépendant de la feuille pour y mettre le code. Cela permet, comme dans ton cas de pouvoir utiliser le code par d'autres modules ou classeurs, et également, en cas de suppression de la feuille d'éviter de perdre le code ... ^^
;o)
Merci pour ta rep, je sais que l'on ne doit pas coder à l'intérieur d'une feuille, mais en fait j'améliore le travail d'un autre, et je dois réutiliser son code, donc je fais comme je peux avec les moyens que j'ai xD, mais en tout cas merci de m'avoir rep.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
23 sept. 2009 à 16:40
23 sept. 2009 à 16:40
Je te conseille de copier/coller le code des feuilles et de les mettre dans un module.
Par exemple, si derrière ta feuille 1 tu as:
Créer un module que tu appelles : ModFeuil1
Le code dans ta feuille 1 devient :
Tu pourras ainsi lancer la procédure LanceCalcul depuis un autre classeur ...
Bon courage
;o)
Par exemple, si derrière ta feuille 1 tu as:
Sub Command1_Click() Dim somme As Integer somme = Range("A3").Value + Range("A5").Value Call macro1(somme) End Sub
Créer un module que tu appelles : ModFeuil1
Public Sub LanceCalcul() Dim somme As Integer somme = Sheets(1).Range("A1").Value + Sheets(1).Range("A5").Value Call macro1(somme) End Sub
Le code dans ta feuille 1 devient :
Sub Command1_Click() ModFeuil1.LanceCalcul End Sub
Tu pourras ainsi lancer la procédure LanceCalcul depuis un autre classeur ...
Bon courage
;o)