Procédure VBA pour Ajouter et Nommer des Feuilles de Calcul

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on août 22, 2022

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!

alt text

En savoir plus!

<<Retour aux exemples VBA

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA