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

XL 2013 Macro fermer feuille

Etn

XLDnaute Occasionnel
Bonjour le forum !

Je souhaite que si les feuilles "NOM" "PRENOM" et "AGE" sont dans le classeur actif, alors elles se ferment automatiquement.

J'ai cherché mais je ne trouve que des macros pour fermer des classeurs entiers et non uniquement une feuille.

Merci pour votre aide,

Cordialement,

Etn
 

Modeste

XLDnaute Barbatruc
Re : Macro fermer feuille

Bonjour Etn,

J'ai cherché mais je ne trouve que des macros pour fermer des classeurs entiers et non uniquement une feuille
Peut-être que tu ne trouves pas ... parce que ce n'est pas possible

Si tu cherches en utilisant le terme "Masquer", plutôt que "Fermer" une feuille, tu auras peut-être plus de succès?
 

Etn

XLDnaute Occasionnel
Re : Macro fermer feuille

Bonjour Modeste,

C'est fou tout ce qu'on peut faire avec le vba, mais qu'il soit impossible de fermer une feuille de classeur haha.

Le problème c'est qu'il est nécessaire que les feuilles soient fermées (supprimées) et pas seulement masquées.

Merci quand même pour ton aide.
 

Modeste

XLDnaute Barbatruc
Re : Macro fermer feuille

Ben Supprimer, c'est encore différent de Fermer ou Masquer!

Utilise le bon terme dans tes recherches et tu obtiendras la réponse (Sheets(x).Delete) dans le cas présent

Dans un module standard, quelque chose comme
Code:
Sub masquer()
tabSh = Array("NOM", "PRENOM", "AGE")
For Each sh In ThisWorkbook.Sheets
    If Not IsError(Application.Match(sh.Name, tabSh, 0)) Then sh.Delete
Next sh
End Sub
...devrait fonctionner
 

Etn

XLDnaute Occasionnel
Re : Macro fermer feuille

Cela fonctionne, j'aimerais juste que le message :
"Vous ne pouvez pas annuler la suppression de feuilles, car il est possible que vous supprimiez certaines données. Si vous n'en avez plus besoin cliquez sur Supprimer."
ne s'affiche plus si possible.

D'autre part je ne comprends pas la différence entre supprimer et fermer une feuille.
 

Etn

XLDnaute Occasionnel
Re : Macro fermer feuille

Aah très bien je pensais que fermer = Supprimer, désolé de la confusion.

D'autre part j'ai trouvé comment contourner le message de confirmation (j'ai utilisé Application.displayAlerts = False)

Merci pour votre aide et bonne journée !

EDIT : Bonjour theBenoit59, je viens de voir ton message. Cela fonctionne
Code:
Sub DeleteFeuille()
 tabSh = Array("Feuil2", "Feuil3")
 For Each sh In ThisWorkbook.Sheets
     If Not IsError(Application.Match(sh.Name, tabSh, 0)) Then sh.Delete
     Application.DisplayAlerts = False
 Next sh
 End Sub

Cela fonctionne alors devrais-je quand même ajouter Application.DisplayAlerts = True ?

Cordialement,

Etn
 
Dernière modification par un modérateur:

Etn

XLDnaute Occasionnel
Re : Macro fermer feuille

Ah très bien j'ai compris, merci

Donc quelque chose comme ça ?

Code:
Sub DeleteFeuille()
  tabSh = Array("Feuil2", "Feuil3")
  For Each sh In ThisWorkbook.Sheets
      If Not IsError(Application.Match(sh.Name, tabSh, 0)) Then sh.Delete
      Application.DisplayAlerts = False
  Next sh

     Application.DisplayAlerts = True
  End Sub
 

thebenoit59

XLDnaute Accro
Re : Macro fermer feuille

Je ferai plutôt comme ça :

Code:
Sub DeleteFeuille()
Application.DisplayAlerts = False
  tabSh = Array("Feuil2", "Feuil3")
  For Each sh In ThisWorkbook.Sheets
      If Not IsError(Application.Match(sh.Name, tabSh, 0)) Then sh.Delete
  Next sh
Application.DisplayAlerts = True
  End Sub
 

Discussions similaires

Réponses
8
Affichages
328
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…