Executer BOUTON depuis autre classeur VBA
Résolu
Anonyme
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai encore un p'tit souci en vba :)
Voila en fait j'ai un classeur, et je souhaiterais que ce classeur lance le code contenu dans un autre classeur, pour activer ce code, il suffit de cliquer sur un bouton dans l'autre classeur, donc en fait, j'aimerais à partir de mon 1er classeur pouvoir exécuter le bouton contenu dans le 2è classeur..
J'ai déjà lu pas mal de truc pour lancer une macro d'un autre classeur mais sa ne marche pas car moi ce code fait parti de la feuille(en fait il appelle des macros)..
Voila merci :)
J'ai encore un p'tit souci en vba :)
Voila en fait j'ai un classeur, et je souhaiterais que ce classeur lance le code contenu dans un autre classeur, pour activer ce code, il suffit de cliquer sur un bouton dans l'autre classeur, donc en fait, j'aimerais à partir de mon 1er classeur pouvoir exécuter le bouton contenu dans le 2è classeur..
J'ai déjà lu pas mal de truc pour lancer une macro d'un autre classeur mais sa ne marche pas car moi ce code fait parti de la feuille(en fait il appelle des macros)..
Voila merci :)
A voir également:
- Executer BOUTON depuis autre classeur VBA
- Bouton reinitialisation pc - Guide
- Diagnostic bouton photo - Accueil - Outils
- Bouton on/off comment savoir ✓ - Forum Matériel & Système
- Symbole arrêt marche - Forum Word
- Réinitialiser chromecast sans bouton - Guide
3 réponses
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.
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)