VBA : garder même macro en changeant nom feuille

Résolu/Fermé
Max06 - 11 août 2014 à 10:42
 Max06 - 11 août 2014 à 11:17
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

sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 août 2014 à 10:58
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.
0
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
11 août 2014 à 11:07
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

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