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

Effacer toutes les feuilles du classeurs sauf deux feuilles ?

  • Initiateur de la discussion Initiateur de la discussion avoriaz
  • 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 !

A

avoriaz

Guest
salut le forum,

alors vous avez passé un bon noel ? j'espere que oui !!!!!


et bien voila ma question: je desire effacer toute les feuilles de mon classeurs sur un seul bouton....
sauf deux feuilles la feuille menu et la feuille resultat ....

qq1 peut t'il venir a mon aide ?

merci a vous

avo
 
Bonsoir

un truc dans ce style :

Public Sub vev()
Dim ws As Object

Application.DisplayAlerts = False

For Each ws In Worksheets
If ws.Name <> "Menu" And ws.Name <> "Resultat" Then
ws.Delete
End If
Next ws

Application.DisplayAlerts = True

End Sub


Salut
Hervé
 
merci hervé pour ta reponse aussi rapide ..

j'ai essayé il me remonte une erreur de compilation then and goto

bizzard ....

If ws.Name "Menu" And ws.Name "Resultat" Then cette phrase passe en rouge ....

merci
 
Salut "avoriaz "et " Hervé"
je pense que tu n'as pas bien recopier la procèdure qu' Hervé t'a donné
If Ws .Name <>"Menu "il faut un opérateur = ,<, > etc pour la suite de la procèdure
A+++
Jean Marie
 
re
la syntaxe n'était donc pas bonne ensuite il te faut faire attention à la case Menu n'est pas menu

Private Sub CommandButton1_Click()

Dim ws As Object

Application.DisplayAlerts = False

For Each ws In Worksheets
If ws.Name<> "menu" And ws.Name <> "resultat"Then
ws.Delete
End If
Next ws
Exit Sub
Application.DisplayAlerts = True

End Sub

A+++
Jean Marie
 
re une autre version trouvée sur
<http://www.info-3000.com/vbvba/onglet.php>
Sub EffacementTouteFeuille ()
For Ctr = Sheets.Count To 1 Step -1
If Sheets (Ctr).Name <> "menu" And Sheets (Ctr).Name <> "resultat"Then
Sheets (Ctr).Delete
End If
Next
End Sub

Pourquoi avoir écrit Sheets.Count To 1 Step -1 au lieu de 1 To Sheets.Count?
Parce qu’à chaque tour de boucle, on efface chaque fois une feuille, et Sheets.Count devient chaque fois plus petit. Au bout d'un moment, VBA ne trouve plus les feuilles. C'est subtil !

A+++
Jean Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…