Exécuter une macro au démarrage d'Excel - Exemples de code VBA

Avez-vous besoin d'exécuter une macro au démarrage d'Excel ? Vous avez deux options :

1. Créez un sous-classeur Workbook_Open() dans 'ThisWorkbook'.

2. Placez un sous-programme Auto_Open() dans n'importe quel module.

Evénement Workbook_Open

Créez un sous-titre « Workbook_Open » dans « ThisWorkbook »

123 Workbook_open ()MsgBox "Ce code s'est exécuté au démarrage d'Excel !"Fin du sous-marin

Auto_Open

En utilisant la deuxième méthode : créez simplement un sous-programme appelé Auto_Open et placez-y du code, ou appelez un autre sous-programme à partir de là. Votre code s'exécute automatiquement au démarrage d'Excel.

123 Private Sub Auto_Open()MsgBox "Ce code s'est exécuté au démarrage d'Excel !"Fin du sous-marin

Créer et nommer une nouvelle feuille de calcul à chaque ouverture d'Excel

Le code suivant fonctionne en ouvrant un classeur. Il ajoute automatiquement une nouvelle feuille et l'étiquette avec la date. Il vérifie également que la feuille n'existe pas déjà - pour permettre la possibilité de l'ouvrir plus d'une fois par jour.

Ce code utilise l'événement Workbook Open et doit être placé dans le module de classeur sous l'événement "Open work Book". La fonction Sheet_Exist doit être placée dans un module et cela vérifie si la feuille existe ou non :

123456789101112131415 Sous-classeur privé_Open()Dim New_Sheet_Name en tant que chaîneNew_Sheet_Name = Format(Maintenant(), "jj-mm-aa")Si Sheet_Exists(New_Sheet_Name) = False ThenAvec classeurWorksheets.Add().Name = New_Sheet_NameTerminer parFin sisauvegarderFin du sous-marin
12345678910111213 Fonction Sheet_Exists (WorkSheet_Name en tant que chaîne) en tant que booléenDim Work_sheet en tant que feuille de calculSheet_Exists = FauxPour chaque Work_sheet dans ThisWorkbook.WorksheetsSi Work_sheet.Name = WorkSheet_Name AlorsSheet_Exists = TrueFin siProchainFonction de fin

Pour télécharger le fichier .XLSM de ce tutoriel, cliquez ici

Définir la feuille par défaut à l'ouverture du classeur

Voulez-vous vous assurer qu'une feuille s'affiche toujours en premier lorsqu'un classeur s'ouvre ? Par exemple, lorsque vous ouvrez un classeur, la feuille 3 est toujours la feuille active. Voici comment.

Vous pouvez faire référence à une feuille de VBA par son nom de programme (c'est-à-dire Sheet3) ou par son nom d'onglet (c'est-à-dire JanData). Il est préférable d'utiliser le nom du programme, car si le nom de l'onglet change, votre code VBA qui fait référence à un nom d'onglet ne fonctionnera plus. Cependant, si vous utilisez le nom du programme, un utilisateur peut modifier le nom de l'onglet plusieurs fois et votre macro fonctionne toujours.

Pour vous assurer qu'une certaine feuille est toujours activée à l'ouverture d'un classeur, placez simplement le code sheet.activate dans le sous-classeur workbook_open. Il s'agit d'un exemple qui active Sheet3 en utilisant le nom du programme chaque fois qu'un classeur s'ouvre.

123 Sous-classeur privé_Open()Feuille3.ActiverFin du sous-marin

Et cela en utilisant le nom de l'onglet :

1234 Sous-classeur privé_Open()Sheets("mytabname").ActiverFin du sous-marin

Remarque : vous devez enregistrer et redémarrer Excel pour que cela fonctionne.
Remarque : cela ne fonctionne que si les macros sont activées.
Remarque : placez ce code dans la fenêtre de code de l'objet ThisWorkbook dans le VBE.

Charger le formulaire à chaque ouverture du classeur

Si vous souhaitez charger un formulaire ou exécuter du code VBA lorsque vous ouvrez un classeur Excel, placez votre code dans la fenêtre Code Thisworkbook et dans le sous Workbook_Open.

À partir de votre feuille de calcul :
1. Appuyez sur ALT et F11 pour ouvrir l'éditeur VB
2. Double-cliquez sur le mot ThisWorkbook pour ouvrir la fenêtre de code
3. Tapez le code suivant dans la fenêtre de code ThisWorkbook

123 Sous-classeur privé_Open()UserForm1.ShowFin du sous-marin

Note : remplacez Userform1 par le nom de votre formulaire

4. Fermez Excel et rouvrez-le.

wave wave wave wave wave