Ce tutoriel expliquera comment ajouter / insérer des feuilles de calcul à l'aide de VBA.
Ajouter une feuille
Cette macro simple ajoutera une feuille avant l'ActiveSheet :
123 | Sous-Ajouter ()Feuilles.AjouterFin du sous-marin |
Après avoir inséré une feuille, la nouvelle feuille devient la feuille active. Vous pouvez ensuite 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).
1 | 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 :
1 | Sheets.Add.Name = "NewSheet" |
Créer une nouvelle feuille avec un nom à partir d'une cellule
Ou utilisez une valeur de cellule pour nommer une nouvelle feuille :
1 | 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 Après ou Avant pour insérer une feuille à un emplacement spécifique dans le classeur.
Insérer une feuille après une autre feuille
Ce code insèrera la nouvelle feuille APRES une autre feuille :
1 | Sheets.Ajouter après : = Sheets("Entrée") |
Cela insérera une nouvelle feuille APRÈS une autre feuille et spécifiera le nom de la feuille :
1 | Sheets.Add(After :=Sheets("Input")).Name = "NewSheet" |
Notez la parenthèse supplémentaire requise dans le deuxième exemple (le premier exemple générera une erreur si la deuxième parenthèse est ajoutée).
ou avant:
1 | Sheets.Add(Before:=Sheets("Input")).Name = "NewSheet" |
Dans ces exemples, nous avons explicitement nommé la feuille utilisée pour déterminer l'emplacement de la feuille. Souvent, vous voudrez utiliser le numéro d'index de la feuille à la place, 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 :
1 | Sheets.Add After : = Sheets(Sheets.Count) |
Ajouter une feuille au début du classeur :
Pour ajouter une feuille au début du classeur :
1 | Sheets.Add(Before:=Sheets(1)).Name = "FirstSheet" |
Ajouter une feuille à la variable
Ce code affecte la nouvelle feuille à une variable lors de la création de la feuille :
12 | Dim ws As Feuille de calculDéfinir ws = Sheets.Add |
De là, vous pouvez référencer la nouvelle feuille avec la variable « ws » :
1 | ws.name = "VarSheet" |
Plus d'exemples d'ajout de feuille
Créer une feuille si elle n'existe pas déjà
Vous pouvez 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 examinera le contenu d'une seule colonne configurée dans des feuilles de calcul Excel dans le classeur actuel avec ces noms. Il appelle une autre fonction pour voir si une feuille avec ce nom existe déjà, et si c'est le cas, la feuille n'est pas créée.
1234567891011121314151617181920212223242526 | Private Sub CommandButton1_Click()Appelez CreateWorksheets(Sheets("Sheet2").Range("A1:a10"))Fin du sous-marinSub CreateWorksheets (Names_Of_Sheets As Range)Dim No_Of_Sheets_to_be_Added As IntegerDim Sheet_Name en tant que chaîneDiminuer en tant qu'entierNo_Of_Sheets_to_be_Added = Names_Of_Sheets.Rows.CountPour i = 1 To No_Of_Sheets_to_be_AddedSheet_Name = Names_Of_Sheets.Cells(i, 1).Value'Ajouter une feuille uniquement si elle n'existe pas déjà et que le nom fait plus de zéro caractèresSi (Sheet_Exists(Sheet_Name) = False) Et (Sheet_Name "") AlorsWorksheets.Add().Name = Sheet_NameFin siEnsuite jeFin du sous-marin |
1234567891011121314 | 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 |
Donc, si nous avons le texte suivant dans les cellules A1:A30 de la feuille 2 :
Ensuite, les feuilles suivantes seront créées :
Notez que bien que « Chien » apparaisse deux fois, une seule feuille est créée.
Pour télécharger le fichier .XLS de ce tutoriel, cliquez ici.