Macro multi sheet

Macro multi sheet - VB/VBA/VBS - Programmation

Marsh Posté le 15-12-2010 à 20:26:12    

bonjour
 
j'ai une question a 2 balles mais qui me bloque
 
dans un classeur excel sur le 1er onglet j'ai placé des boutons qui lancent des macro, tout fonctionne tres bien mais je voudrais que ces boutons soient présent sur tout les onglets (même ceux que je vais créer par le suite) et que mes macro soient accessible de n'importe quel onglet
 
possible ?
 
merci

Reply

Marsh Posté le 15-12-2010 à 20:26:12   

Reply

Marsh Posté le 15-12-2010 à 23:14:47    

Salut,oui

Reply

Marsh Posté le 17-12-2010 à 18:35:15    

cool
 
comment ?

Reply

Marsh Posté le 17-12-2010 à 22:29:15    

Salut,à priori ,dans le cas le plus simple, il suffit de copier ta feuille initiale avec ces boutons dans le même classeur : Clic Droit sur l'onglet de la feuille initiale puis sélectionner "Déplacer ou Copier" ou via le Menu Edition : Déplacer ou Copier une feuille
Les procédures auxquelles sont affectées les boutons devront prendre en compte la feuille active via "ActiveSheet"
Sinon pour ne cas encombrer les feuilles avec une guerre des boutons tu peux créer une barre de menus ou un menu contextuel


Message édité par kiki29 le 17-12-2010 à 22:35:59
Reply

Marsh Posté le 20-12-2010 à 13:15:50    

ok cela fonctionne mais dans l'éditeur visual basique je me retrouve avec toutes mes feuilles avec le meme code
c'est pour ça que je me demandais si je ne pouvais pas les placer a un endroit accessible depuis n'importe quel onglet genre "thisWorkBook"

Reply

Marsh Posté le 20-12-2010 à 14:48:37    

Salut,et oui il fallait y penser avant, en ayant le code correspondant dans un module

Reply

Marsh Posté le 28-12-2010 à 01:40:03    

Dans ThisWorkbook ajoute une fonction pour l'event "NewSheet", ça sera exécuté à chaque nouvelle création de feuilles dans excel. Attention toutefois ça le lance meme si tu créés un graphique ou autre, met un test pour vérifier qu'il s'agit bien d'une feuille de calcul si nécessaire...
 
Donc moi je ferais un petit sub (avec en argument le nom ou l'index de la feuille créée -- info donnée en argument de l'event !) qui me créé mes boutons etc etc sur la feuille en question.
 
PS :
 
Il faut faire attention avec les ActiveSheet et surtout ActiveWorkbook etc. car le code peut etre exécuté lorsqu'un autre classeur est actif (clic sur l'autre fenetre excel alors que la macro n'a pas terminé son exécution) et là c'est la cata car les modifs faitent pas le code VBA ne sont pas annulable...!! Donc toujours utiliser ThisWorkbook à la place !!! Moi j'ajoute une variable au départ qui spécifie bien en dur le nom du classeur dans lequel on travaille pour pas que des cellules soient modifié dans un autre...


Message édité par fouinardomeo le 28-12-2010 à 01:40:40
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed