VBA – Exécuter une Macro à l’Ouverture d’Excel
In this Article
Vous avez besoin d’exécuter une macro au démarrage d’Excel? Vous avez deux possibilités :
1. Créer une procédure « Workbook_Open() » dans le module nommé ‘ThisWorkbook’.
2. Placez une procédure « Auto_Open() » dans n’importe quel module.
Événement Workbook_Open
Créez une procédure nommée ‘Workbook_Open’ dans ‘ThisWorkbook’
Private Sub Workbook_Open()
MsgBox ("Ce code s'est exécuté au démarrage d'excel")
End Sub
Procédure Auto_Open
En utilisant la deuxième méthode : Il suffit de créer une procédure appelée Auto_Open et d’y placer du code, ou d’appeler une autre procédure à partir de celle-ci. Votre code s’exécute automatiquement au démarrage d’Excel.
Private Sub Auto_Open()
MsgBox ("Ce code s'est exécuté au démarrage d'Excel!")
End Sub
Créer et Nommer une Nouvelle Feuille de Calcul à Chaque Ouverture d’Excel
Le code suivant fonctionne à l’ouverture d’un classeur. Il ajoute automatiquement une nouvelle feuille et la renomme selon la date. Il vérifie également que la feuille n’existe pas déjà – pour tenir compte de la possibilité qu’elle soit ouverte plus d’une fois par jour.
Ce code utilise l’événement d’ouverture du classeur et doit être placé dans le module nommé « ThisWorkbook » sous l’événement « Workbook_Open ». La fonction « FeuilleExiste » doit être placée dans un module et elle vérifie si la feuille existe ou non :
Private Sub Workbook_Open()
Dim Nom_Nouvelle_Feuille As String
Nom_Nouvelle_Feuille = Format(Now(), "dd-mm-yy")
If FeuilleExiste(Nom_Nouvelle_Feuille) = False Then
With Workbook
Worksheets.Add().Name = Nom_Nouvelle_Feuille
End With
End If
Save
End Sub
Function FeuilleExiste(Nom_Feuille As String) As Boolean
Dim Feuille As Worksheet
Sheet_Exists = False
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name = Nom_Feuille Then
FeuilleExiste = True
End If
Next Feuille
End Function
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 procéder.
En VBA, vous pouvez faire référence à une feuille par son nom de programme (par exemple Feuil3) ou par son nom d’onglet (par exemple DonnéesJanvier). 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, l’utilisateur peut changer le nom de l’onglet plusieurs fois et votre macro fonctionnera toujours.
Pour s’assurer qu’une certaine feuille est toujours activée à l’ouverture d’un classeur, il suffit d’utiliser la fonction Activate de l’objet Worksheet dans la procédure Workbook_Open. Voici un exemple qui active la feuille 3 en utilisant le nom du programme chaque fois qu’un classeur s’ouvre.
Private Sub Workbook_Open()
Feuil3.Activate
End Sub
Le code suivant active la feuille en utilisant plutôt le nom de l’onglet :
Private Sub Workbook_Open()
Sheets("NomOnglet").Activate
End Sub
Remarque : vous devez enregistrer et redémarrer Excel pour que cela fonctionne. Remarque : cela ne fonctionne que si les macros sont activées.
Remarque : mettez ce code dans la fenêtre de code de l’objet ThisWorkbook dans le VBE.
Charger un Formulaire à Chaque Ouverture du Classeur
Si vous souhaitez charger un formulaire ou exécuter un code VBA lorsque vous ouvrez un classeur Excel, placez votre code dans la fenêtre de code de l’objet ThisWorkbook et dans la procédure Workbook_Open.
Depuis 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
Private Sub Workbook_Open()
Formulaire1.Show
End Sub
Sidenote : Remplacez Formulaire1 par le nom de votre formulaire. Fermez Excel et ouvrez-le à nouveau.
La Programmation VBA Simplifiée
Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de créer leurs propres procédures, avec des connaissances minimales en programmation et de nombreuses fonctionnalités permettant à tous les utilisateurs de gagner du temps!
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!