Il est très simple d'ajouter une Feuille au Classeur en VBA. Vous pouvez, d'ailleurs, en ajouter plusieurs à la fois, les placer directement à un endroit en particulier et il est également possible d'attribuer un nom à la Feuille nouvellement ajoutée.
Sommaire
- Méthode Sheets.Add en VBA
- Ajout d'une Feuille devant la Feuille active
- Ajouter une nouvelle Feuille à un endroit spécifique dans le Classeur Excel
- Ajouter une nouvelle Feuille directement avec un nom
- Ajouter plusieurs Feuilles en même temps
- Exemples pratiques d'ajout de(s) Feuille(s) dans un Classeur Excel en VBA
- Conclusion de ce tutoriel
- Pour aller plus loin en VBA
Méthode Sheets.Add en VBA
De manière générale, on ajoute une Feuille grâce à la méthode Sheets.Add
cette méthode a plusieurs paramètres (tous optionnels):
- Before – détermine devant quelle Feuille la nouvelle Feuille sera ajoutée (peut être le nom ou le numéro de la Feuille – voir exemples)
- After – détermine derrière quelle Feuille la nouvelle Feuille sera ajoutée (peut être le nom ou le numéro de la Feuille – voir exemples)
- Count – détermine le nombre de Feuilles qui seront ajoutées. Par défaut, cette valeur est égale à 1 (donc si vous omettez ce paramètre, 1 Feuille sera ajoutée au Classeur).
- Type – détermine le type de la Feuille (
xlWorksheet
,xlChart
,xlExcel4MacroSheet
ouxlExcel4IntlMacroSheet
). Par défaut, c'est la valeurxlWorksheet
ce qui signifie que dans 99% des cas, vous n'aurez pas besoin d'utiliser ce paramètre
Voici donc des codes VBA expliqués pour les différents cas de figure…
Ajout d'une Feuille devant la Feuille active
Ceci est le cas le plus simple. On ne choisit pas l'emplacement spécifique (la nouvelle Feuille sera placée devant la Feuille active), ni le nom de la nouvelle Feuille. Son nom sera générique: en français "FeuilX" où X est le numéro qui va dans la suite des Feuilles existantes. Si vous utilisez Excel en anglais, le nom de la Feuille ainsi créée sera "SheetX".
1 2 3 |
Sub AjouterFeuille() Sheets.Add End Sub |
Ajouter une nouvelle Feuille à un endroit spécifique dans le Classeur Excel
Comme on ajoute une Feuille au Classeur, autant directement choisir son emplacement (si cela a une importance). Nous avons deux possibilités, soit on spécifie devant quelle Feuille on veut ajouter la nouvelle, soit derrière quelle Feuille.
Il est possible d'utiliser soit le nom de la Feuille de référence, soit la valeur numérique comme vous pouvez le constater dans les codes VBA qui suivent.
Devant une Feuille particulière
1 2 3 4 5 6 7 8 9 |
Sub AjouterFeuilleDevantUneAutreFeuille() 'Avec le numéro de la Feuille Sheets.Add Before:=Worksheets(3) 'ajoute une Feuille devant la 3ème Feuille du Classeur 'Avec le nom de la Feuille Sheets.Add Before:=Worksheets("Revenus") 'ajoute une Feuille devant la Feuille "Revenus" End Sub |
Après une Feuille particulière
1 2 3 4 5 6 7 8 9 |
Sub AjouterFeuilleDerriereUneAutreFeuille() 'Avec le numéro de la Feuille Sheets.Add After:=Worksheets(4) 'ajoute une Feuille derrière la 4ème Feuille du Classeur 'Avec le nom de la Feuille Sheets.Add After:=Worksheets("Calendrier") 'ajoute une Feuille derrière la Feuille "Calendrier" End Sub |
Au début ou à la fin du Classeur
On peut également vouloir ajouter la nouvelle Feuille tout au début du Classeur ou tout à la fin. Et cela indépendamment du nombre des Feuilles existantes. Pour cela, vous pouvez utiliser le code suivant:
1 2 3 4 5 6 7 8 9 10 |
Sub AjouterFeuilleAvecEmplacement() 'ajoute la nouvelle Feuille tout au début du Classeur Sheets.Add Before:=Worksheets(1) 'ajoute une Feuille tout à la fin du Classeur ' --> pour déterminer la dernière Feuille du Classeur, on compte les Feuilles avec la méthode Worksheets.Count Sheets.Add After:=Worksheets(Worksheets.Count()) End Sub |
Ajouter une nouvelle Feuille directement avec un nom
Tout comme il est possible de créer une Feuille à un endroit spécifique du Classeur, il est possible de lui donner directement un nom. Pour cela, on utilise la méthode .Name
. Vous trouverez la syntaxe de base (sans le placement de la Feuille à un endroit particulier) dans le code VBA qui suit:
1 2 3 |
Sub AjouterFeuilleAvecNom() Sheets.Add.Name = "NouvelleFeuille" 'ajoute une Feuille devant la Feuille active et la nomme "NouvelleFeuille" End Sub |
Si, en même temps que lui attribuer un nom, vous voulez placer cette Feuille à un endroit, c'est également possible:
1 2 3 4 |
Sub AjouterPlacerEtNommerUneFeuille() 'ajouter une nouvelle Feuille à la fin du Classeur et la nommer Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Nouvelle_Dernière_Feuille" End Sub |
Remarque: Notez que les paramètres de la méthode Add
se trouvent entre parenthèses! La méthode Name
suit directement la méthode Add
et ses paramètres.
Ajouter plusieurs Feuilles en même temps
Il est possible d'ajouter plusieurs Feuilles d'un coup. Pour cela, nous allons nous servir du paramètre Count
. Le code VBA suivant ajoute 4 nouvelles Feuilles devant la Feuille active.
1 2 3 |
Sub AjouterPlusieursFeuilles() Sheets.Add Count:=4 'ajoute 4 Feuilles devant la Feuille active End Sub |
Vous pouvez évidemment combiner le nombre de nouvelles Feuilles avec le code pour indiquer leur emplacement. Voir la section "Exemples" qui suit…
Exemples pratiques d'ajout de(s) Feuille(s) dans un Classeur Excel en VBA
Vous voici familiarisés avec les différentes possibilités d'ajouter une Feuille au Classeur en VBA. J'ajoute encore quelques exemples en plus…
Pour ces exemples, imaginons un Classeur qui contient 4 Feuilles nommées "a", "b","c" et "d".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub AjouteFeuilleExemples() 'par Excel-Malin.com ( https://excel-malin.com/ ) 'ajoute 1 Feuille au début du Classeur et la nomme "début" Sheets.Add(Before:=Worksheets(1)).Name = "début" 'ajoute deux Feuilles après la Feuille "b" Sheets.Add After:=Sheets("b"), Count:=2 'ajoute une Feuille à la 3ème place et la nomme "3e_feuille" Sheets.Add(After:=Worksheets(2)).Name = "3e_feuille" 'ajoute 5 feuilles à la fin du Classeur Sheets.Add After:=Worksheets(Worksheets.Count), Count:=5 End Sub |
Conclusion de ce tutoriel
On arrive à la fin de ce tutoriel. J'espère qu'il vous a permis d'apprendre une nouvelle fonctionnalité de VBA en Excel ou d'approfondir vos connaissances. Si vous avez des questions, des remarques ou des suggestions, n'hésitez pas à laisser un commentaire.
Pour aller plus loin en VBA
Voici quelques articles sur VBA qui pourraient également vous intéresser et vous être utiles…
- Liste de toutes les fonctions disponibles en VBA
- Trier les Feuilles d'un Classeur par ordre alphabétique
- Visibilité des Feuilles en Excel
- Fonction Excel pour trouver le nom de la Feuille
- Comment utiliser RECHERCHEV en VBA – oui, c'est possible!
- Calculer la SOMME et le POURCENTAGE en VBA
Vous pouvez également consulter la page dédiée aux ajouts des Feuilles sur le site de Microsoft. Mais je vous préviens, vous n'y trouverez pas beaucoup d'informations supplémentaires…
7 commentaires sur “Tutoriel VBA: ajouter une Feuille au Classeur Excel”
C'est tres important et excellent ce que vous avez presenter methodiquement , mais j'aimerai savoir comment ajouter une feuille a un autre classeur en utilisant les variables. Par exemple , j'ai un calasseur qui contient des informations personnelles de chaque enseignant et un autre pour les rapports d'inspection. CTD une feuille pour chaque rapport. Conclusion: comment ajouter, placer et nommer une feuille don't le nom est affecte a une variable.
merci
Bonjour, Je vous propose un nouvel йlйment а utiliser : Ajouter une feuille dans un classeur fermй Il possible de crйer dynamiquement une nouvelle feuille dans un classeur fermй en utilisant le modиle ADO. Ce n'est pas quelque chose de trиs habituel mais il s'agit avant tout ici de montrer les possibilitйs associйes а Excel. Cet exemple montre comment ajouter une nouvelle feuille dans un fichier Excel fermй et y transfйrer le contenu d'une requкte effectuйe dans une table Access. Qu'en pensez-vous ?
Bonjour Monsieur,
Tout d'abord, je vous remercie pour les cours gratuits que vous nous offrez.
Une notion me paraît un peu ambiguë. Il s'agit de l'utilisation des signes "deux-égal" (:=). Quand est-ce qu'il faut les utiliser ?
Merci de m'éclairer sur ce point.
Bonjour Karim,
je suis content d'entendre que mes tutoriels soient utiles…
Pour votre question:
en VBA
=
assigne une valeur à une variable (Variable), une propriété (Property) ou à un objet (Object):=
assigne une valeur à un paramètre (Parameter) d'une propriété (Property) ou d'une méthode (Method)Donc en gros,
:=
est utilisé aves les paramètres des méthodes et propriétés.Par exemple:
ThisWorkbook.Close SaveChanges:=False
ici, on assigne la valeurFalse
au paramètreSaveChanges
de la méthode.Close
J'espère que mon explication est compréhensible 🙂
Cordialement, Martin
super bien expliqué.
On peut comprendre même quand on a peu de connaissance en vba.
Bonjour,
Merci beaucoup pour ces cours expliqués de façon simple et donc facile à comprendre.
Je voudrais savoir, si on veut créer des nouvelles feuilles en copiant une feuille modèle ?
En résumé
1. J'ai une liste dans laquelle définit le nombre et leur nom des feuilles à créer
2. J'ai une ou plusieurs feuilles modèles : à partir de la liste point N°1, je saurais quelle feuille modèle à copier
3. Une fois les feuilles sont créer, je voudrais compléter ces feuilles avec les informations de la liste point N°1
Voilà, je ne sais pas si j'étais claire ☺, si jamais je peux avoir une réponse ☻
Merci encore pour ces cours
Bjr à tous et merci pour les cours.je veux creer une base des données pour gerer les rapports d'activités annuel et semestriel des sociétés des carrières. les données sont les suivants: effectif total; les nationaux,les expatriés;les cadres,identité de la carrière,les coordonnées; la RSE en terme de depenses;la production totale annuelle, la production totale semestrielle; le nombre d'accident de travail;les types d'accident de travail;les formation recues ect….jai besoin d'aide