modification dynamique de macro

  • Initiateur de la discussion Jot59
  • Date de début
J

Jot59

Guest
Bonsoir,

mon problème est le suivant je veux affecter une macro à un bouton

exemple :
bouton 1 : aller à l'onglet onglet-a
bouton 2 : aller à l'onglet onglet-b

sachant que les onglets onglet-a et onglet-b peuvent changer de noms , comment faire pour modifier les macros correspondantes, une fois que l'on a les nouveaux onglets

merci d'avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Jot, bonsoir le forum,

Cela ne répond pas vraiment à ta question mais tu peux atteindre un onglet par son nom :
Sheets('Toto').Activate, sélectionne l'onglet Toto et provoque une erreur si c'est onglet n'existe pas.
ou, tu peux aussi le sélectionner par sa position (son index) :
Sheets(2).Activate, sélectionne le deuxième onglet quel que soit son nom et provoque une erreur si le numéro d'index n'existe pas.

Donc si tu utilises les index tu n'auras pas besoin de modifier le code, à moins que tu ne déplaces, ajoutes ou supprimes des onglets... Là je n'ai pas de solution.
 
J

jot59

Guest
Bonsoir Robert,

merci pour ta réponse, je connais le principe avec sheets.activate, mais là le pb est que les onglets et leurs noms sont regénérés de façon dynamique et je voudrais que les boutons suivent
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Jot, bonsoir le forum,

Oui Jot, j'avais bien compris cela et d'ailleurs je te précisait bien que je ne répondais pas vraiment à ta question mais je me demande si toi tu as bien compris ma proposition...
Quoi qu'il en soit, je pense que tu devrais joindre à ton post ton fichier ou un exemple basé sur ton fichier. Avec notamment la macro qui genère la regénération des onglets. Cela te permettra, je pense, d'obtenir une réponse bien plus vite.
 

Charly2

Nous a quittés en 2006
Repose en paix
Salut Jot59, salut mon ami Robert,
bonjour à toutes et à tous :)

Une solution possible est d'utiliser le CodeName de la feuille qui, lui, est rarement modifié une fois la feuille créée.

Tu vas dans VBAProject et tu notes le CodeName de tes feuilles (en général Feuil1 ou Sheet1 suivant la version), ensuite, dans le code il te suffit d'écrire :

Feuil1.Select

au lieu de

Sheets('NomQuelconque').Select

A+ ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi