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.