Comment créer une nouvelle feuille en utilisant le code VBA ?

Une fois que vous avez commencé à apprendre VBA, l’une des choses les plus cool que vous puissiez faire est d’écrire un code VBA pour insérer une nouvelle feuille de calcul dans un classeur.

Eh bien, il existe déjà une touche de raccourci pour insérer une nouvelle feuille de calcul ou vous pouvez également utiliser l’option normale, mais l’avantage d’utiliser un code VBA est que vous pouvez ajouter plusieurs feuilles de calcul en un seul clic et vous pouvez également définir où vous voulez ajouter il.

Pour cela, vous devez utiliser la méthode Sheets.Add, et dans cet article, nous apprendrons à l’utiliser pour ajouter une ou plusieurs feuilles de calcul dans un classeur.

Sheets.Add, méthode

Sheets.Add ([Before], [After], [Count], [Type])
  • Avant : pour ajouter une nouvelle feuille avant une feuille.
  • Après : Pour ajouter la nouvelle feuille avant une feuille.
  • Compter : nombre de feuilles à ajouter.
  • Type : Type de feuille que vous souhaitez ajouter ( LIEN )

Écrire un code VBA pour ajouter une nouvelle feuille dans un classeur

Ouvrez l’éditeur Visual Basic et suivez ces étapes.

  • Tout d’abord, vous devez entrer la méthode Sheets.Add.
  • Ensuite, vous devez définir l’endroit où ajouter la nouvelle feuille (Avant ou Après).
  • La prochaine chose est d’entrer le nombre de feuilles de calcul.
  • En fin de compte, le type de feuille.
add-sheets-add-méthode-vba

Différentes façons d’ajouter de nouvelles feuilles dans un classeur à l’aide d’un code VBA

Vous trouverez ci-dessous différentes manières d’ajouter une nouvelle feuille à un classeur :

1. Ajouter une seule feuille

Pour ajouter une seule feuille, vous pouvez utiliser le code ci-dessous, où vous n’avez spécifié aucun argument.

Sub SheetAddExample1()
ActiveWorkbook.Sheets.Add
End Sub

Ce code indique à Excel d’ajouter une feuille dans le classeur actif, mais comme vous n’avez aucun argument, il utilisera les valeurs par défaut et ajoutera une feuille de calcul (xlWorksheet) avant la feuille active.

Voici une autre façon d’écrire ceci, consultez le code ci-dessous.

Sub SheetAddExample2()
Sheets.Add
End Sub

Comme vous êtes déjà dans le classeur actif, vous pouvez également utiliser le code ci-dessous. Il fait la même chose.

2. Ajouter plusieurs feuilles

Pour ajouter plusieurs feuilles en une seule fois, il vous suffit de définir l’argument COUNT avec le nombre de feuilles que vous souhaitez ajouter.

Sub AddSheets3()
Sheets.Add Count:=5
End Sub

Maintenant, le nombre de feuilles que vous avez défini est de 5, donc lorsque vous exécutez ce code, il ajoute instantanément les cinq nouvelles feuilles dans le classeur.

3. Ajouter une feuille avec un nom

Si vous souhaitez renommer la feuille après l’avoir ajoutée, vous pouvez utiliser le code suivant :

Sub AddNewSheetswithNameExample1()
Sheets.Add.Name = "myNewSHeet"
End Sub

Dans le code ci-dessus, nous avons utilisé l’objet name ( LINK ) qui vous aide à spécifier le nom d’une feuille.

4. Ajouter une feuille avec un nom à partir d’une cellule

Vous pouvez également prendre la valeur à utiliser comme nom de feuille à partir d’une cellule.

Sub AddNewSheetswithNameExample2()
Sheets.Add.Name = Range("A1")
End Sub

Dans le code ci-dessus, la cellule A1 est utilisée pour obtenir le nom de la nouvelle feuille.

5. Ajouter une feuille après/avant une feuille spécifique

Comme ces arguments sont déjà là dans Sheets.Add où vous pouvez spécifier la feuille pour ajouter une nouvelle feuille avant ou après.

Sub AddSheetsExample5()
Sheets.Add Before:=Worksheets("mySheet")
Sheets.Add After:=Worksheets("mySheet")
End Sub

Maintenant, dans le code ci-dessus, vous avez deux lignes de code que vous avez utilisées avant et après un argument dans la méthode Sheet.Add. Ainsi, lorsque vous exécutez ce code, il ajoute deux feuilles, l’une avant et l’autre après « mySheet ».

6. Ajouter une nouvelle feuille au début

En utilisant l’argument avant en utilisant, vous pouvez également ajouter une feuille au début des feuilles que vous avez dans le classeur.

Donc, fondamentalement, ce que nous allons faire, c’est que nous allons spécifier le numéro de la feuille au lieu du nom de la feuille.

Sub AddSheetsExample6()
Sheets.Add Before:=Sheets(1)
End Sub

Dans le code ci-dessus, vous avez utilisé le numéro de feuille (1) qui indique à VBA d’ajouter la feuille avant la feuille qui se trouve en première position dans toutes les feuilles de calcul. De cette façon, il ajoutera toujours la nouvelle feuille au début.

7. Ajouter une nouvelle feuille à la fin (après la dernière feuille)

Pour ajouter une nouvelle feuille à la fin, vous devez écrire le code d’une manière différente. Donc, pour cela, vous devez savoir combien de feuilles il y a dans le classeur afin de pouvoir ajouter une nouvelle feuille à la fin.

Sub AddSheetsExample8()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub

Dans le code ci-dessus, Sheet.Count renvoie le nombre de feuilles que vous avez dans le classeur et, comme vous avez défini l’argument après, il ajoute la nouvelle feuille après la dernière feuille du classeur.

8. Ajouter plusieurs feuilles et utiliser les noms d’une plage

Le code suivant compte les lignes de la plage A1:A7. Après cela, il boucle pour ajouter des feuilles en fonction du nombre de la plage et utilise les valeurs de la plage pour nommer la feuille lors de son ajout.

Sub AddSheetsExample9()

Dim sheets_count As Integer
Dim sheet_name As String
Dim i As Integer

sheet_count = Range("A1:A7").Rows.Count

For i = 1 To sheet_count
  sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value
  Worksheets.Add().Name = sheet_name
Next i

End Sub

Mais avec le code ci-dessus, il est possible que le nom de la feuille que vous souhaitez ajouter existe déjà ou que vous ayez une cellule vide dans la plage de noms.

Dans ce cas, vous devez écrire un code qui peut vérifier si la feuille portant le même nom existe déjà ou non et si la cellule d’où vous voulez prendre le nom de la feuille est vide ou non.

Si les deux conditions sont remplies seulement alors il convient d’ajouter une nouvelle feuille. Permettez-moi de le mettre en étapes deux étapes:

Tout d’abord , vous devez écrire une fonction définie par l’utilisateur Excel pour vérifier si une feuille portant le même nom existe déjà ou non.

Function SheetCheck(sheet_name As String) As Boolean

Dim ws As Worksheet

SheetCheck = False
 
For Each ws In ThisWorkbook.Worksheets
 
    If ws.Name = sheet_name Then
    
        SheetCheck = True
        
    End If
 
Next
 
End Function

Deuxièmement, vous devez écrire un code à l’aide de cette fonction et ce code doit également vérifier si la cellule de nom est vide ou non.

Sub AddMultipleSheet2()

Dim sheets_count As Integer
Dim sheet_name As String
Dim i As Integer

sheet_count = Range("A1:A7").Rows.Count

For i = 1 To sheet_count

    sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value
    
    If SheetCheck(sheet_name) = False And sheet_name <> "" Then
    Worksheets.Add().Name = sheet_name
    End If

Next i

End Sub

Maintenant, dans le code ci-dessus, vous avez utilisé l’ instruction VBA IF et dans cette instruction, vous avez la fonction de vérification de feuille qui vérifie le nom de la feuille, puis vous avez une condition pour vérifier si la cellule de nom a une valeur vide.

Exemple de fichier

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *