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