Suppression d'une selection de feuilles par une macro

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

L

lesuisse

Guest
Bonsoir a toutes et à tous,

J'ai un nombre de feuilles qui se crée automatiquement en fonction d'une macro. Ce nombre de feuilles est variable.

Je souhaite maintenant trouver un code permettant de supprimer toutes les feuilles sauf celle dénommée MENU, A, B, C et D.
Quelqu'un a une idée ?
Le fichier joint donne l'exemple concret.

Merci à vous tous.

Le Suisse
 

Pièces jointes

bonjour
u nexemple


Dim s As Worksheet, Mat
Mat = Array("Feuil10", "Feuil12")
Application.DisplayAlerts = False
For Each s In ActiveWorkbook.Worksheets
If IsError(Application.Match(s.Name, Mat, 0)) Then s.Delete
Next s
Application.DisplayAlerts = True
 
Salut Jon, le forum

Ben écoute, tout simplement Merci ! Ca marche comme sur des roulettes
Est ce que tu pourrais m'expliquer avec quelques détails cette macro please ??
Je te remercie encore une fois et

a+

Le Suisse


Dim s As Worksheet, Mat
Mat = Array("Menu")
Application.DisplayAlerts = False
For Each s In ActiveWorkbook.Worksheets
If IsError(Application.Match(s.Name, Mat, 0)) Then s.Delete
Next s
Application.DisplayAlerts = True
 
définition d'une variable objet "s" pour être puriste et ne pas avoir de souci au moment du bouclage sur la collection Worksheets (Feuilles de calcul)

définition d'une variable Tableau
mat=array("feuil1",feuil2") ......
d'autres infos dans les anciens messages
et notamment là <http://xlbysteph.free.fr/aideinformatique/actionvba2.htm>

application.displayalerts=false
avec cette instruction, excel n'affiche pas certains avertissements, comme celui qui informe qu'une feuille de calcul va êtr supprimé définitivement.

for each s in activeworkbook.worksheets
=> pour chaque objet s contenu dans la collection de feuilles de calcul

If IsError(Application.Match(s.Name, Mat, 0)) Then s.Delete

s.name => le nom de l'objet actuellement "lu" par la boucle

match correspond à la fonction equiv qui permet de retourner la position d'un élément dans une plage de cellules ou bien ici dans une variable tableau.
=> si le résultat de cette détermination est une erreur, alors la feuille s ne figure pas dans la liste on supprime la feuille
 
- 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

T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
573
Themax
T
Réponses
5
Affichages
577
Retour