Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer tous les onglets Feuilxxx

  • Initiateur de la discussion Initiateur de la discussion travolta
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

travolta

XLDnaute Junior
Bonjour le forum,

j'aurais besoin d'une macro qui supprime de mon classeur, tous les onglets Feuil1, Feuil2 etc...
et bien entendu je ne sais pas faire 🙂

Merci d'avance à eux qui pourront m'aider 🙂
 
Merci Gilbert_RGI, mais en fait, je ne connais pas à l'avance les noms que vont avoir les feuilles.
J'utilise une macro qui crée une feuil temporaire à chque fois qu'elle s'exécute, et à chque fois je me retrouve avec 50 nouvelles feuilles, avec le numéro qui a incrémenté.
C'est pour ça que je voudrais pouvoir çà la fin de ma macro un bout de code qui supprime les n feuilles crées 🙂
 
si tu veux détruire toutes les feuilles après la feuille 2
VB:
Sub supp_feuille()
    Application.DisplayAlerts = False
    For i = 3 To Sheets.Count
        Sheets(i).Delete
    Next i
    Application.DisplayAlerts = True
End Sub
 
Merci, par contre je ne veux supprimer que les feuilles qui s'appellent feuil1, feuil2, feuilxxx, toutes les autres feuilles du classeur je veux les garder 🙂

là j'ai l'impression que ta macro supprime toutes les feuilles quelquesoient leurs noms, hormis la 1ere feuille ?
 
une autre solution
dans la première feuille en colonne A tu mets le nom des feuilles que tu veux conserver
et tu lances ce programme

VB:
Sub SuppFeuill()
    For i = Sheets.Count To 2 Step -1
        test = 0
        For j = 1 To Range("A65535").End(xlUp).Row
            If Sheets(i).Name = Cells(j, 1) Then test = 1
        Next j
        If test = 0 Then
            Application.DisplayAlerts = False
            Sheets(i).Delete
        End If
    Next i
    Application.DisplayAlerts = True
End Sub
 
Bonjour à tous,
Salut Gilbert,

Peux-tu essayer avec :

VB:
Sub SuppFeuill()
Dim x&
    For x = Sheets.Count To 2 Step -1
        Application.DisplayAlerts = False
            If Left(Sheets(x).Name, 5) = "Feuil" Then Sheets(x).Delete
            Application.DisplayAlerts = True
    Next x
End Sub

A+ à tous
 
Bonjour travolta, Gilbert, Jean-Claude,

Pour le fun :
Code:
Sub SuppFeuilles()
Dim s As Object, a$(), n&
For Each s In Sheets
  If s.Name Like "Feuil*" Then _
    ReDim Preserve a(n): a(n) = s.Name: n = n + 1
Next
If n And n < Sheets.Count Then _
  Application.DisplayAlerts = False: Sheets(a).Delete
End Sub
Bonne journée.
 
Re,

J'ai testé avec 1000 feuilles :
Code:
Sub SuppFeuilles()
Dim dur, s As Object, a$(), n&
dur = Timer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
For Each s In Sheets
  If s.Name Like "Feuil*" Then
    ReDim Preserve a(n)
    a(n) = s.Name
    n = n + 1
    If n Mod 20 = 0 Then Sheets(a).Delete: n = 0
  End If
Next
Sheets(a).Delete
MsgBox "Durée " & Format(Timer - dur, "0.00 \s")
End Sub
Chez moi (Win 10 - Excel 2013) la suppression par paquets de 20 est la plus rapide (5 secondes).

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
12
Affichages
776
Réponses
4
Affichages
445
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…