[VBA] Supprimer plusieurs feuilles Excel [Fermé]

Signaler
-
Messages postés
1
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
2 mai 2016
-
Bonjour,

Dans le cadre d'un projet contenant du VBA, l'utilisateur est amené à creer différentes feuilles (dans le but d'une consultation). A la fermeture du classeur, je souhaiterai que toutes les feuilles ainsi créées soient automatiquement supprimées, le problème c'est que je ne peux pas connaître le nom de ces feuilles et je suis donc bloqué. J'ai commencé un bout de code mais je me retrouve vite dans l'impasse:

Sub Test()

Application.DisplayAlerts = False
nbfeuille = Worksheets.Count

For i = 4 To nbfeuille (je souhaite garder les 4 premières feuilles du classeur Excel)
w = ActiveSheet.Name


Next i

End Sub

Si vous avez quelques solutions à mon problème, ça ne serait pas de refus ^^

Merci d'avance.


2 réponses

Messages postés
17380
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 096
Bonjour,
Valable seulement si les feuilles ajoutées le sont "Après" (After)

Sub SuppFeuille() 
Dim i As Integer 
    Application.DisplayAlerts = False 
    For i = 5 To Sheets.Count 
        Sheets(i).Delete 
    Next i 
    Application.DisplayAlerts = True 
End Sub

Sinon faut tester les noms des feuilles que tu connaît.
A+

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63592 internautes nous ont dit merci ce mois-ci

Messages postés
1
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
2 mai 2016

Sub Test()
Dim i As Integer
application.DisplayAlerts = False
For i = 5 To Sheets.Count
Sheets(5).Delete
Next i
End Sub

en remplaçant i par 5, ça marche mieux
Messages postés
17380
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 096
Variante avec le nom des feuilles, bien sûr, remplacer les noms de feuilles par les bons.
Sub SuppFeuille()  
Dim i As Integer, e As Integer, F  
    F = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4")  
    Application.DisplayAlerts = False  
    For i = 1 To Sheets.Count  
        For e = 0 To 3: If Sheets(i).Name = F(e) Then GoTo Suivant  :Next
        Sheets(i).Delete  
Suivant:  
    Next i  
    Application.DisplayAlerts = True  
End Sub


L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)