Tutoriel VBA: ajouter une Feuille au Classeur 1


Il est très simple d'ajouter une Feuille au Classeur en VBA. Vous pouvez, d'ailleurs, en ajouter plusieurs à la fois et il est également possible d'attribuer un nom à la Feuille nouvellement ajoutée.

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):

  1. 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)
  2. 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)
  3. Count – détermine le nombre de Feuilles qui seront ajoutées
  4. Type – détermine le type de la Feuille (xlWorksheet, xlChart, xlExcel4MacroSheet ou xlExcel4IntlMacroSheet). Par défaut, c'est la valeur xlWorksheet 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…

Ajouter 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.

Sub AjouterFeuille()
    Sheets.Add
End Sub

 

Ajouter une Feuille à un endroit spécifique dans le Classeur Excel

Comme on ajoute une Feuille au Classeur, autant directement choisir son emplacement. 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 code VBA qui suivent.

Devant une Feuille particulière

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

Sub AjouterFeuilleDerriereUneAutreFeuille()

'Avec le numéro de la Feuille
Sheets.Add After:=Worksheets(4) 'ajoute une Feuille drriè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:

Sub AjouterFeuilleAvecEmplacement()

'ajoute la nouvelle Feuille tout au début du Classeur
Sheets.Add Before:=Worksheets(1)

'ajoute uen 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 Feuille avec un nom

Tout comme il est possible d'ajouter 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 placement de la Feuille à un endroit particulier) dans le code VBA qui suit:

Sub AjouterFeuilleAvecNom()
    Sheets.Add.Name = "NouvelleFeuille" 'ajoute une Feuille devant la Feuille active et la nomme "NouvelleFeuille"
End Sub

 

Si, en même temps, vous voulez ajouter une Feuille à un endroit et lui attribuer un nom, c'est également possible:

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.

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 d'ajout de(s) Feuilles 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".

Sub AjouteFeuilleExemples()

'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

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

Les articles suivants pourraient également vous intéresser…

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…

 

26 0

Pourrait vous intéresser


Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

Commentaire sur “Tutoriel VBA: ajouter une Feuille au Classeur

  • Ben Abbes Mohamed

    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