Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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 🙂
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
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
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
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).
- 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