[Catégorie modifiée .Net --> VBA] supprimé toutes feuilles execel

Signaler
Messages postés
22
Date d'inscription
jeudi 1 juillet 2010
Statut
Membre
Dernière intervention
7 juillet 2010
-
Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
-
Bonjour,

comment peut-on faire pour supprimer toutes les feuilles excel d'un classeur??

merci d'avance

5 réponses

Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
re,

Tu dois obligatoirement garder au moins 1 Feuille;
Ensuite pour les effacer tu peux faire une boucle du genre
Sub suppr_Feuilles()
'compte le nombre de feuilles dans le classeur actif
Nb_Feuilles = ActiveWorkbook.Sheets.Count
'boucle sur les feuilles pour les supprimer (sauf la dernière)
For i = 1 To Nb_Feuilles - 1 'de la feuille 1 à nb -1
    Application.DisplayAlerts = False 'ne pas afficher les message d'erreur
    Sheets(i).Delete ' Suppression de la feuille numéro i
    Application.DisplayAlerts = True 're-activer les messages d'erreur
Next

End Sub



Et je prends les devant :
Au cas où tu voudrais tester si une feuille existe... :
( Par exemple la feuille nommée : "Feuil1" )

Sub Tester_existence_Feuille()
FE = FExist("Feuil1")
End Sub
Function FExist(NomF As String) As Boolean ' test si la feuille existe
' NomF => Nom de la feuille à tester
' La fonction Retourne Vrai si elle existe, sinon Faux
Application.ScreenUpdating = False
On Error Resume Next
FExist = Not Sheets(NomF) Is Nothing
Application.ScreenUpdating = True
End Function





Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
22
Date d'inscription
jeudi 1 juillet 2010
Statut
Membre
Dernière intervention
7 juillet 2010

re,

en fait ca ne fonctionne pas ça me di que la fonction delete a échouer meme si les feuilles sont parties et enfin ca n'efface que les feuilles pair et non impair donc je ne comprend pas
Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
arf.. oui. pardon.
Comme il efface les feuilles...ça décalle leur numéro..
le mieux serait de faire la boucle.. à l'envers ^^

Dim I As Integer
For I = Nb_Feuilles To 2 Step -1 'toutes les feuilles..de la dernière à la deuxième
'Code pour supprimer les feuilles
'-----
Next I

Quand à ton message d'erreur.. il est du au fait qu'il essayer de supprimer des feuilles dont le N° n'existait plus.

Essayes et tiens moi au courant.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
22
Date d'inscription
jeudi 1 juillet 2010
Statut
Membre
Dernière intervention
7 juillet 2010

Sub SupprimeFeuille()
Dim Compteur As Integer, Nom As String
Application.DisplayAlerts = False
For Compteur = Worksheets.Count To 1 Step -1
Nom = Sheets(Compteur).Name
Select Case Nom
Case "Feuille_bidon"

Case Else
Sheets(Compteur).Delete
End Select
Next Compteur
Application.DisplayAlerts = True
End Sub

celui-ci fonctionne bien
Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
C'est bien ça.

Boucle en sens inverse et visiblement tu as ajouté un test sur le nom de la feuille pour ne pas supprimer la feuille : "Feuille_Bidon" (et ainsi en garder au moins une.

tu progresses... continue comme ça.

Bonne continuation.


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI