Le fait de stocker une macro dans le classeur courant la rendre accessible seulement lorsque vous êtes dans ce classeur. Attentioin toutefois, si vous avez plusieurs classeurs ouverts et que la macro se touve dans Classeur1, et que en fait vous êtes dans classeur2, alors, avec Outils/Macros/Macros, vous aurez Accès aux macros de Classeur1.
Attention Toutefois (C'est compliqué) : admettons que vous êtes dans le classeur Classeur1.XLS, et que vous enregistrez une Macro "Macro1" dans ce calsseur Classeur1.XLS, et que vous attachez cette macro à une icône d'une barre d'outils personnalisée que vous avez créé préalablement (avec Affichage/Barre d'outils/Personnaliser), vous pourriez imaginer que si vous enregistrez Classeur1.XLS et que vous fermez Excel, quand vous allez revenir dans Excel, soit la barre d'outils personnalisée que vous aviez créé quand vous étiez dans Classeur1.XLS aura disparu, soit, si elle n'a pas disparu, l'icône qui appelle une macro de Classeur1.XLS ne fonctionnera plus tant que vous n'ouvrez pas Classeur1 ... ET BIEN NON : Excel, dès que vous cliquerez sur le bouton qui appelle Macro1 de Classeur1.XLS, ouvrira (discrètement) Classeur1.XLS pour récupérer et exécuter Macro1. Bien entendu, si entretemps vous avez supprimé Classeur1, ou déplacé, ou renommé, alors évidemment, Excel vous dira qu'il ne trouve plus la macro !
Donc méfiez-vous des barres d'outils qui appellent des macros "locales" au classeur dans lequel vous êtes ! Dans ce cas de figures, moi, je trouve que ce serait bien d'afficher automatiquement la barre d'outils du classeur local lors de l'ouverture. Voici un exemple de code utilisant les procédures auto_open() et auto_close() pour montrer ou masquer une barre d'outils qui s'appellerait MacrosLocales, et qui contiendrait des boutons qui appellent des macros se trouvant dans l'actuel fichier XLS :
Sub auto_open()
CommandBars("MacrosLocales").Visible = True
End Sub
Sub auto_close()
CommandBars("MacrosLocales").Visible = False
End Sub
Comme auto_open s'exécute automatiquement à l'ouvertuire du classeur et auto_close à sa fermeture, le tour est joué ! Cliquez ici pour de plus amples informations sur ces deux procédures
Le classeur de macros personnelles s'appelle en réalité PERSO.XLS. C'est un nom de fichier réservé. Il s'agit d'un fichier masqué qui est créé dès la première fois qu'on enregistre une macro dans le classeur de macros personnelles. PERSO.XLS s'enregistre automatiquement dans le dossier de démarrage par défaut d'Excel. Dans le chapitre suivant j'en dis plus sur le dossier de démarrage par défaut, notamment comment le troiuver.
Voici la marche à suivre pour créer le classeur de macros PERSO.XLS : Il suffit d'enregistrer une macro idiote dedans :
Voilà. Maintenant, vous SAVEZ que PERSO.XLS existe, et qui se trouve dans le dossier de démarrage par défaut d'Excel. Pour le trouver, cliquez sur le bouton Démarrer de Windows, Rechercher/Fichiers ou Dossiers, et recherchez PERSO.XLS sur tout votre ordinateur. Vous verrez ainsi ou il se trouve. Retenez-le, ça pourra vraiment vous être utile
PERSO.XLS ne commence a exister qu'a partir du moment ou on y installa la première macro. Il est placé dans ce qu'Excel appelle un "Dossier de démarrage". C'est quoi ? Et bien, Excel va ouvrir automatiquement tous les fichiers .XLS qui sont dans ce dossier à chaque ouverture d'Excel. S'il y a 50 fichiers .XLS, Excel les ouvre les 50.
Et ou est placé de dossier de démarrage ? Ce n'est pas très clair : On aurait bien aimé le savoir en allant dans Outils/Options, mais rien. En fait, dans Outils/Options, on trouve bien un endroit "Autre dossier de démarrage", mais ce n'est pas celui-là. Nous allons donc ruser. Je vous ai dit que PERSO.XLS existait à partir du moment ou on créait une première macro. Marche à suivre :
A partir de maintenant, à chaque ouverture d'Excel, il va continuer a vous afficher une feuille de calcul blanche, mais, en plus, il va ouvrir PERSO.XLS en tant que Fichier masqué ! C'est à dire que vous ne le verrez pas, mais il est bien présent. Pour s'en convaincre, faites Outils/Macros/Macros. Dans la liste, vous devriez constater la macro PERSO.XLS!MacroGenerale. Ca veut dire que MacroGenerale se trouve effectivement bien dans PERSO.XLS.
Si vous voulez faire plus de tests, essayez de quitter Excel, et d'aller détruire PERSO.XLS dans l'explorateur Windows. Quand vous reviendrez dansExcel, MacroGenerale aura disparu.
Un autre test consisterait à rendre visible PERSO.XLS. Il suffit d'aller dans Fenêtre/Afficher, et de demander l'affichage de PERSO.XLS. Vous verrez un simple fichier vide, mais qui contient MacroGenerale. ATTENTIOn : Si vous faites ce test, ne sauvegardez pas votre PERSO.XLS, parce qu'il serait sauvegardé en Affiché, et pas Masqué, ce qui lui fait perdre tout son intérêt. On n'a pas besoin de le VOIR, on a besoin qu'il nous mette discrètement ses macros à disposition tout le temps.
Il existe un endroit sur votre disque dur qui est le dossier de démarrage par défaut d'Excel. Ce dossier de démarrage peut changer avec les versions d'Excel et de Windows. Avant Windows 2000, il me c'était un dossier qui s'appelait XLOUVRIR, et qui est un sous dossier qui se trouve dans le dossier d'installation d'Office. Avec Windows 2000, ce dossier se trouve plutôt dans les données de configuration personnelle (Dans mon cas : C:\Documents and Settings\NomDeMonOrdinateur\Application Data\Microsoft\Office\XLSTART).
En deux mots, pour retrouver ou se trouve votre dossier de démarrage par défaut, il suffit de rechercher PERSO.XLS (Voir chapitre précédent)
Allez dans Outils/Options/General : Dans la zone "Autre dossier de démarrage", vous pouvez spécifier un nom de dossier (pas un nom de fichier, mais bien de dossier. Exemple : d:\docs\Config\Excel). Tous les fichiers .XLS qui se trouvent dans ce dossier seront chargés au démarrage d'Excel, qu'ils soient masqués ou pas
S'il n'y a aucun fichier, alors, un classeur vide apparaître simplement au démarrage d'Excel. S'il y en a un, il prend la place de ce classeur vide, et s'il y en à plus, ils sont chargés les uns derrière les autres.
Une astuce intéressante consisterait à sauvegarder un fichier .XLS masqué dans cet autre dossier de démarrage, et d'y installer des macros. Dans le cas ou vous avez un fichier .XLS masqué dans ce dossier, Excel vous donnera encore un classeur vide au démarrage d'Excel (pour vous éviter d'avoir un Excel tout gris sans classeur visible pour travailler au démarrage)
Ce dossier pourrait sembler faire double emploi avec le dossier de démarrage par défaut d'Excel, mais en fait, on pourrait imaginer que votre dossier de démarrage par défaut se trouve sur votre ordinateur, et personne n'y a accès à part vous, et l'autre dossier de démarrage pourrait se trouver sur un lecteur de disque réseau, partageable avec tout un groupe d'utilisateurs.
Bon, maintenant, une question qui peut surgir, c'est "Que se passe-t-il si dans le dossier de démarrage par défaut et dans l'autre dossier de démarrage, il y a 2 fois le même nom de fichier ?". Je n'en sais rien... Je n'ai pas testé...
Classeur.XLT (eXceL Template) est un nom réservé qui désigne le classeur par défaut qui est ouvert quand vous ouvrez Excel. A la base, ce classeur n'existe pas, mais si vous le créez (Fichier/Enregistrer Sous, Type de Fichier : Modèle, Nom ; Classeur.XLT, Emplacement : Le même que Perso.XLS, ou l'autre dossier de démarrage), alors, chaque fois que vous allez ouvrir Excel, ce sera simplement une copie de ce classeur qui va être ouverte. Attention : a partir du moment ou Classeur.XLT existe, on ne peut plus utiliser Outils/Options/Général/Nombre de feuilles par nouveau classeur. Ce sera le nombre de feuilles de Classeur.XLT.
Les modèles de classeur doivent se trouver dans un dossier de démarrage (XLOUVRIR, XLSTART, ou l'autre dossier de démarrage défini par l'utilisateur). Dans ce cas, les macros seront disponibles dès qu'on ouvrira un classeur basé sur ce modèle (Fichier/Nouveau/Choisir le modèle en question)
Une macro complémentaire est un simple fichier Excel, qui ne possède pas de feuille visible, particulièrement conçu pour stocker des macros VBA. Pour plus d'informations sur les macros complémentaires existantes, cliquez ici.
Marche à suivre pour la création d'une macro complémentaire
Vous puvez mettre ou non une coche en face de cette macro complémentaire testcomplement.xla. Qu'est ce que ça signifie, cette coche ?
Ici, ce n'est pas un choix, c'est une implication. Lorsque vous créez des barres d'outils personnalisées, celles-ci sont stockées sous forme de fichier binaire dans un fichier .XLB (eXcel Bar). Ce ou ces fichiers sont stockés dans le dossier de démarrage par défaut d'Excel. Ce sont des fichiers qu'on ne peut pas modifier comme ça. Pour voir le contenu, il faut d'abord créer une barre d'outils personnalisée, y attacher une ou plusieurs macros qui viennent d'endroits difféents, et ensuite visualiser le fichier résultant .XLB dans un éditeur de texte, tel que NotePad, par simple curiosité.