Feuille de suppression VBA - Comment supprimer une feuille de calcul à l'aide du code VBA?

Feuille de suppression Excel VBA

Pour supprimer la feuille dans VBA, nous utilisons une méthode de suppression de feuille de calcul. Pour appliquer cette méthode, nous devons d'abord identifier la feuille que nous supprimons en appelant le nom de la feuille. Nous avons deux méthodes pour faire la même chose: nous écrivons directement sheet1.delete et la seconde méthode est sheets (sheet1) .delete.

La syntaxe suit donc.

Feuilles de calcul ("Nom de la feuille de calcul"). Supprimer

OU

Feuilles ("Nom de la feuille"). Supprimer

Donc, tout d'abord, nous devons spécifier le nom de la feuille en utilisant soit Worksheet ou Sheets Object, puis plus tard, nous pouvons utiliser la méthode «Delete» .

Comment supprimer des feuilles Excel à l'aide du code VBA?

Exemple # 1 - Supprimer la feuille de calcul en utilisant son nom

Supposons que vous ayez de nombreuses feuilles et que pour supprimer la feuille de calcul particulière, nous devons mentionner la feuille de calcul par son nom. Par exemple, j'ai 3 feuilles différentes nommées «Ventes 2016», «Ventes 2017» et «Ventes 2018».

Si je souhaite supprimer la feuille intitulée « Ventes 2017 » , je dois mentionner le nom de la feuille comme ci-dessous.

Code:

Sous Delete_Example1 () Worksheets ("feuilles 2017"). End Sub

Le problème de la mention directe du nom de la feuille de calcul nous ne permet pas de voir la liste IntelliSense de VBA. En tout cas, mentionnez la méthode « Supprimer».

Code:

Sub Delete_Example1 () Worksheets ("feuilles 2017"). Delete End Sub

Cela supprimera donc la feuille intitulée « Ventes 2017 ».

Erreur lors de la suppression de la feuille de calcul: si nous essayons de supprimer la feuille de calcul qui n'existe pas ou si nous mentionnons le nom de la feuille de calcul à tort, nous obtiendrons l'erreur VBA comme «Indice hors limites».

Dans ce qui précède, j'ai eu l'erreur «Indice hors plage» car, dans mon classeur, il n'y a pas de nom de feuille appelé «Ventes 2017».

Exemple # 2 - Supprimer la feuille de calcul par son nom avec des variables

Comme nous l'avons vu dans l'exemple ci-dessus, au moment où nous nous référons au nom de la feuille de calcul en utilisant l'objet Worksheets, nous ne voyons pas la liste IntelliSense. Pour voir la liste IntelliSense, nous devons utiliser des variables.

Étape 1: Tout d'abord, déclarez la variable comme feuille de calcul .

Code:

Sub Delete_Example2 () Dim Ws As Worksheet End Sub

Étape 2: Puisque la feuille de calcul est une variable objet, nous devons définir la variable sur la feuille de calcul spécifique en utilisant le mot « SET ».

Code:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") End Sub

Désormais, la variable «Ws» fait référence à la feuille de calcul intitulée «Ventes 2017».

Étape 3: Maintenant, en utilisant la variable « Ws », nous pouvons accéder à toute la liste IntelliSense de la feuille de calcul.

Code:

Sous Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. End Sub

Étape 4: Dans la liste IntelliSense, sélectionnez la méthode « Supprimer ».

Code:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws.Delete End Sub

Comme cela en utilisant des variables, nous pouvons accéder à la liste IntelliSense.

Exemple # 3 - Supprimer la feuille de calcul active

La feuille active n'est rien d'autre que la feuille de calcul active ou sélectionnée pour le moment. Pour cette méthode, nous n'avons pas besoin de mentionner le nom de la feuille de calcul. Par exemple, regardez le code VBA ci-dessous.

ActiveSheet.Delete

À l'heure actuelle, la feuille active est «Ventes 2017».

Si j'exécute le code, il supprimera la feuille active, c'est-à-dire «Ventes 2017».

Maintenant, je vais sélectionner «Ventes 2016».

Maintenant, il supprimera la feuille active, c'est-à-dire «Ventes 2016».

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

Le code ci-dessus générera une erreur car il tente de supprimer toutes les feuilles du classeur. Donc, pour éviter cela, nous devons conserver au moins une feuille de calcul.

Si nous voulons supprimer toutes les feuilles de calcul à l'exception de la feuille active, nous devons utiliser le code ci-dessous.

Code:

Sub Delete_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name Then Ws.Delete End If Next Ws End Sub

De même, si nous ne voulons pas supprimer une feuille de calcul spécifique mais supprimer toutes les autres feuilles de calcul, nous pouvons utiliser le code ci-dessous.

Code:

Sub Delete_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Sales 2018" Then 'Vous pouvez changer le nom de la feuille de calcul Ws.Delete End If Next Ws End Sub

Le code ci-dessus supprimera toutes les feuilles de calcul à l'exception de la feuille de calcul intitulée «Ventes 2018».

Articles intéressants...