# Le classeur personnel de macros (Personal.xlsb)

## C'est quoi ?

C'est un classeur spécial d'Excel : Excel l'ouvre tout seul, en
caché, à chaque démarrage. Les macros que tu mets dedans sont
disponibles dans **tous** les fichiers que tu ouvres, sans rien
réinstaller.

C'est la solution quand tu veux une macro « partout » : tu
l'installes une fois dans ce classeur personnel, et ensuite elle
te suit dans n'importe quel classeur.

Deux précisions importantes :
- Ce classeur est lié à ton ordinateur et à ta session Windows.
  Si tu changes d'ordinateur, il ne te suit pas tout seul : il
  faudrait copier le fichier sur le nouvel ordinateur.
- Le classeur personnel ne contient que des macros. Il ne contient
  pas tes données, et il ne modifie rien tout seul.

## Le créer une fois (s'il n'existe pas encore)

Excel ne crée ce classeur que quand tu en as besoin une première
fois. Pour le créer :

1. Ouvre Excel.
2. Va dans l'onglet **Affichage**, puis **Macros**, puis
   **Enregistrer une macro**.
3. Dans la fenêtre, pour « Enregistrer la macro dans », choisis
   **Classeur de macros personnelles**.
4. Fais une toute petite action bidon (par exemple, clique sur une
   cellule), puis clique sur **Arrêter l'enregistrement**
   (même menu Macros).
5. C'est fait : Excel vient de créer ton classeur personnel.

Si tu veux, tu peux ensuite supprimer la macro bidon (Alt+F11,
ouvrir PERSONAL.XLSB, supprimer le module). Ce n'est pas obligé.

## Où il se trouve

En général ici :

```
%APPDATA%\Microsoft\Excel\XLSTART\PERSONAL.XLSB
```

C'est-à-dire, le plus souvent :
`C:\Users\ton-nom\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB`.
Tu n'as pas besoin de l'ouvrir toi-même : Excel le charge tout
seul au démarrage, et il reste caché.

## Y importer un fichier .bas avec le script

Une fois que ton classeur personnel existe, tu peux y importer
n'importe quel fichier `.bas` préparé (par exemple par Muse) avec
le script `Inject-VBA.ps1` déjà fourni :

```
.\Inject-VBA.ps1 -BasFile "C:\chemin\Module1.bas" -Workbook "$env:APPDATA\Microsoft\Excel\XLSTART\PERSONAL.XLSB"
```

Le script importe le module dans le classeur personnel, puis
l'enregistre. À partir de là, la macro est disponible dans tous
tes classeurs : tu la retrouves dans **Affichage > Macros**.

## Attention : le script ne peut pas créer ce classeur tout seul

Si le fichier `PERSONAL.XLSB` n'existe pas encore, le script ne
peut pas l'inventer : il te dira « Classeur introuvable ». Il
faut d'abord le créer une fois avec la petite macro bidon
ci-dessus, puis lancer le script.

## Prérequis, comme pour tout import VBA

Comme pour n'importe quel import, il faut que l'option Excel
« Accès approuvé au modèle d'objet du projet VBA » soit activée :

**Fichier > Options > Centre de gestion de la confidentialité
> Paramètres du Centre de gestion de la confidentialité
> Paramètres des macros**, puis coche la case.

Sans cette option, Excel refuse l'import et le script te
l'explique. Et comme toujours avec cette option : n'importe
que des fichiers en lesquels tu as confiance.
