Suppression d'une selection de feuilles par une macro

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

  • suppfeuilles.zip
    10.2 KB · Affichages: 43
J

Jon

Guest
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
 
L

lesuisse

Guest
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
 
J

Jon

Guest
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
 

Discussions similaires

Réponses
8
Affichages
318
Réponses
5
Affichages
382

Statistiques des forums

Discussions
314 085
Messages
2 105 646
Membres
109 408
dernier inscrit
demichoux50