Macro suppression feuilles

Bonjour à tous,

Alors je suis nouveau et je débute en codage, j'aimerais vraiment me perfectionner, c''est pourquoi je suis ici.

J'aime comprendre quand je fais quelque chose, quelqu'un pourrait m'expliquer pourquoi cela ne fonctionne pas ? Mon objectif est de supprimer l'intégralité des feuilles d'un classeur.

Sub suppfeuille()

'

' suppfeuille Macro

Sheets(Array("Feuil2", "Feuil3", "Feuil4", "Feuil5")).Select

ActiveSheet.Delete

End Sub

(2ème tentative)

Sub essaie2()

Sheets.Select

Selection.Delete

End Sub

Voila, en insérant une variable du type mavariable As Sheets, je pense pouvoir bidouiller quelque chose mais je voulais savoir si il est existant quelque chose de beaucoup plus simple ?

Merci à tous

Bonjour,

Pour le principe :

Public Sub Delete_Sheets()
    Dim N As Long, i As Long
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    N = ActiveWorkbook.Sheets.Count
    For i = N To 2 Step -1
        ActiveWorkbook.Sheets(i).Delete
    Next i
End Sub

Tu ne peux pas supprimer toutes les feuilles. Tu dois en conserver une !...

Cdlt.

Bonjour Minatolta, bonjour le forum,

Deux choses :

  • Tu ne peux pas supprimer tous les onglets d'un classeur. Il te faut en laisser au moins un.
  • Quand on supprime par boucle il faut toujours partir du dernier et remonter (idem pour des lignes ou des colonnes)

Si, par exemple tu veux ne garder que le premier onglet, ça donne un code du style :

Sub Macro1()
Application.DisplayAlerts = False 'n'afiche pas les messages d'Excel (si tu supprimes un onglet Excel te propose systématiquement un message de confirmation)
For I = Sheets.Count To 2 Step -1 'boucle inversée sur tous les onglets du dernier au second
    Sheets(I).Delete 'efface l'onglet de la boucle
Next I 'prochain onglet de la boucle
Application.DisplayAlerts = True 'ré affiche les messages d'Excel
End Sub

[Édition]

Bonjour Jean-Éric, nos posts se sont croisés...

Bonjour,

Il n'est pas possible de supprimer toutes les feuilles d'un classeur. (Il doit au moins en rester une !)

Quand tu sélectionnes plusieurs feuilles seule la première sélectionnée est active.

On ne le répètera jamais assez : Les Select dans le code sont à Excel ce qu'un livre de recette est à la cuisine...

En admettant que ton classeur comporte également une Feuil1, le bon code pour supprimer les autres feuilles serait :

Sub suppfeuille()
Sheets(Array("Feuil2", "Feuil3", "Feuil4", "Feuil5")).Delete
End Sub

A+

Merci galopin01 , oui effectivement j'ai une feuille 1 et comme j'avais compris que je devais garder une feuille c'est pourquoi j'ai supprimé du code le feuil1 quand j'ai tenté de l'écrire de cette façon.

Merci à ThauTheme ainsi qu'à Jean-Eric pour vos réponses précises, je test en rentrant !

Encore merci à tous

Rechercher des sujets similaires à "macro suppression feuilles"