Procédure VBA pour Ajouter et Nommer des Feuilles de Calcul
In this Article
Ce tutoriel explique comment ajouter/insérer des feuilles de calcul en utilisant VBA.
Ajouter une Feuille
Cette macro simple permet d’ajouter une feuille avant la feuille active :
Sub Ajouter()
Sheets.Add
End Sub
Après avoir inséré une feuille, la nouvelle feuille devient la feuille active. Vous pouvez alors utiliser l’objet ActiveSheet pour travailler avec la nouvelle feuille (au bas de cet article, nous montrerons comment insérer une nouvelle feuille directement dans une variable).
ActiveSheet.Name = "NouvelleFeuille"
Ajouter une Feuille Avec un Nom
Vous pouvez également définir un nom de feuille lorsque vous créez la nouvelle feuille :
Sheet.Add.Name = "NouvelleFeuille"
Créer une Nouvelle Feuille Avec un Nom Provenant d’une Cellule
Vous pouvez également utiliser la valeur d’ une cellule pour nommer une nouvelle feuille :
Sheets.Add.Name = range("a3").value
Ajouter une Feuille Avant / Après une Autre Feuille
Vous pouvez également choisir l’emplacement où la nouvelle feuille sera insérée. Vous pouvez utiliser les propriétés After ou Before pour insérer une feuille à un endroit spécifique du classeur.
Insérer une Feuille Après une Autre Feuille
Ce code permet d’insérer la nouvelle feuille APRÈS une autre feuille :
Sheets.Add After:=Sheets("Entrées")
Ce code insère une nouvelle feuille APRÈS une autre feuille et spécifie le nom de la feuille :
Sheets.Add(After:=Sheets("Entrées")).Name = "NouvelleFeuille"
Remarquez les parenthèses supplémentaires requises dans le second exemple (le premier exemple générera une erreur si les secondes parenthèses sont ajoutées).
ou Avant :
Sheets.Add(Before:=Sheets("Entrées")).Name = "NouvelleFeuille"
Dans ces exemples, nous avons explicitement nommé la feuille utilisée pour déterminer l’emplacement de la feuille. Souvent, vous voudrez plutôt utiliser le numéro d’index de la feuille, afin de pouvoir insérer la feuille au début ou à la fin du classeur :
Ajouter une Feuille à la Fin du Classeur
Pour ajouter une feuille à la fin du classeur :
Sheets.Add After:=Sheets(Sheets.Count)
Ajouter une Feuille au Début du Classeur :
Pour ajouter une feuille au début du classeur :
Sheets.Add(Before:=Sheets(1)).Name = "PremièreFeuille"
Ajouter une Feuille à une Variable
Ce code affecte la nouvelle feuille à une variable au moment où la feuille est créée :
Dim fc As Worksheet
Set fc = Sheets.Add
À partir de là, vous pouvez faire référence à la nouvelle feuille de calcul avec la variable ‘fc’ :
fc.name = "FeuilleVar"
Autres Exemples d’Ajout de Feuille
Créer une Feuille si Elle n’Existe pas Déjà
Vous pouvez souhaiter créer une feuille uniquement si elle n’existe pas déjà.
Créer des Feuilles de Calcul à Partir d’une Liste de Noms
La routine suivante examine le contenu d’une seule colonne et crée des feuilles de calcul Excel dans le classeur actuel avec ces noms. Elle fait appel à une autre fonction pour voir si une feuille portant ce nom existe déjà, et si c’est le cas, la feuille n’est pas créée.
Private Sub CommandButton1_Click()
Call CréerFeuilles(Sheets("Feuille2").Range("A1:a10"))
End Sub
Sub CréerFeuilles(Noms_Des_Feuilles As Range)
Dim Nb_De_Feuilles_À_Ajouter As Integer
Dim Nom_Feuille As String
Dim i As Integer
Nb_De_Feuilles_À_Ajouter = Noms_Des_Feuilles.Rows.Count
For i = 1 To Nb_De_Feuilles_À_Ajouter
Nom_Feuille = Noms_Des_Feuilles.Cells(i, 1).Value
' Ajouter la feuille seulement si elle n'existe pas déjà et que son nom contient plus de 0 caractères
If (Feuille_Existe(Nom_Feuille) = False) And (Nom_Feuille <> "") Then
Worksheets.Add().Name = Nom_Feuille
End If
Next i
End Sub
Function Feuille_Existe(Nom_Feuille As String) As Boolean
Dim Feuille_Calcul As Worksheet
Feuille_Existe = False
For Each Feuille_Calcul In ThisWorkbook.Worksheets
If Feuille_Calcul.Name = Nom_Feuille Then
Feuille_Existe = True
End If
Next
End Function
Ainsi, si nous avons le texte suivant dans les cellules A1:A30 de la feuille2 :
Alors les feuilles suivantes seront créées :
Notez que bien que même si « Chien » apparait deux fois, une seule feuille est créée.
Pour télécharger le fichier .XLS de ce tutoriel, cliquez ici. (Version en anglais)
Le codage VBA simplifié
Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de coder des procédures à partir de zéro avec des connaissances minimales en programmation et avec de nombreuses fonctionnalités permettant à tous les utilisateurs de gagner du temps!