VBA : garder même macro en changeant nom feuille [Résolu/Fermé]

Signaler
-
 Max06 -
Bonjour,

J'ai ce code là :

Sub Rectangleàcoinsarrondis1_Clic()
CallByName Worksheets("Feuil1"), "CommandButton1_Click", VbMethod
End Sub

Existe t il un code similaire à celui-ci sans mettre le nom de la feuille "Feuil1". Pour avoir aucun soucis à l'avenir.

Merci

4 réponses

Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
276
Bonjour,

D'une façon ou d'une autre, tu dois indiquer au VB où se trouve le CommandButton. Bien que je ne comprenne pas exactement à quoi sert ici ton CallByName pour appeler un CommandButton en seule instruction d'une macro, il existe 3 solutions pour ta demande spécifique :

1 - Conserver Worksheets("Feuill1") et faire en sorte que la feuille porte toujours le même nom ;
2 - Remplacer Worksheets("Feuill1") par Worksheets(1) qui fera référence au premier onglet du document, peu importe son nom
3 - Réaliser une macro préalable qui parcourra tous les onglets jusqu'à trouver celui qui porte une indication spécifique (du genre If Sheets(p).Range("A1").Value = "C'est sur cette feuille que se trouve le Boutton1" Then ...) puis exécutera le code correspondant.

Je ne sais pas si je suis très clair, si je suis hors sujet alors je t'invites à reformuler ta demande, peut être que je ne l'ai pas comprise.
Le commandbutton ce trouve sur la meme feuille en réalité.
J'aime pas trop quand mes macros sont prédéfinis (par classement d'onglet ou en citant les titres des onglets) car si je change dans quelques temps ... tout est a refaire !

:s
Messages postés
12235
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
6 janvier 2021
2 555
Bonjour,

Je n'y ai pas pensé la semaine dernière, mais :
Sub Rectangleàcoinsarrondis1_Cliquer()
CallByName Worksheets(ActiveSheet.Name), "CommandButton1_Click", VbMethod
End Sub

Yes merci beaucoup, mon collègue ni était pas parvenu ;)