Feuille de suppression 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 «Supprimer» .

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

Vous pouvez télécharger ce modèle Excel de feuille de suppression VBA ici - Modèle Excel de feuille de suppression 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 veux supprimer la feuille nommé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:

Sous Delete_Example1 () Worksheets ("feuilles 2017"). Supprimer 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 plage».

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 référençons le nom de la feuille de calcul à l'aide de l'objet Worksheets, nous ne voyons pas la liste IntelliSense. Pour voir la liste IntelliSense, nous devons utiliser des variables.

Étape 1: déclarez d'abord la variable en tant que feuille de calcul .

Code:

 Sub Delete_Example2 () Dim Ws As Worksheet End Sub 

Étape 2: La feuille de calcul étant 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 nommé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 Ie «Ventes 2017».

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

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

De cette manière, nous pouvons utiliser l'objet «Feuille active» pour supprimer la feuille de calcul.

Remarque: Pour utiliser cette méthode, nous devons être absolument sûrs de ce que nous faisons avec la feuille active et de quelle feuille sera une feuille active.

Exemple # 4 - Supprimer plus d'une feuille de calcul

Dans nos exemples ci-dessus, nous avons vu comment supprimer une seule feuille, mais que se passe-t-il si nous avons plusieurs feuilles de calcul, disons que nous voulons supprimer 10 feuilles de calcul.

Nous ne pouvons pas continuer à écrire 10 lignes de code pour supprimer la feuille de calcul, nous devons donc utiliser des boucles pour parcourir la collection de feuilles de calcul et les supprimer.

Le code ci-dessous parcourra les feuilles de calcul et supprimera toutes les feuilles de calcul du classeur.

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 

Similarly, if we don’t want to delete specific worksheet but to delete all other worksheets then we can use below code.

Code:

 Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name  "Sales 2018" Then 'You can change the worksheet name Ws.Delete End If Next Ws End Sub 

The above code will delete all the worksheets except the worksheet named as “Sales 2018”.