IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer feuille à la fermeture d'Excel si existante [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut Supprimer feuille à la fermeture d'Excel si existante
    Bonjour,

    Je souhaite supprimer automatiquement une feuille à la fermeture d'Excel, jusque là pas de problème, voilà ce que j'ai tapé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    Application.DisplayAlerts = False
    Sheets("T11_Cumul_LCESE").Delete
    Application.DisplayAlerts = True
     
    End Sub
    Problème : Je réalise qu'il est possible que des utilisateurs ouvrent le fichier alors que cet onglet n'existe plus, auquel cas la macro va planter lorsqu'ils refermeront le fichier. Comment modifier mon code pour que celui-ci ferme tout simplement Excel sans se poser de questions si la feuille n'est pas existante ?

    Merci d'avance !

    Runsh

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il est possible d'intercepter l'erreur, mais je préfère une solution de cet ordre en parcourant la liste des feuilles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
        Dim objSheet As Worksheet
     
        Application.DisplayAlerts = False
     
        For Each objSheet In ThisWorkbook.Worksheets
            If objSheet.Name = "T11_Cumul_LCESE" Then
                objSheet.Delete
            End If
        Next objSheet
     
        Application.DisplayAlerts = True
     
    End Sub
    Philippe

  3. #3
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut
    Super ! C'est exactement ce qu'il me fallait ! Merci beaucoup !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/03/2014, 09h48
  2. [XL-2007] Activer protection feuille après fermeture de la grille de saisie Excel (formulaire)
    Par petitorco dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/06/2011, 11h54
  3. [XL-2007] Supprimer une feuille avant fermeture du fichier
    Par TonyRc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/01/2011, 15h00
  4. Changer de feuille dans un classeur Excel
    Par couiss dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 09/05/2005, 10h05
  5. Obtenir la liste des feuilles d'un fichier Excel
    Par Jean Bonnisme dans le forum Access
    Réponses: 3
    Dernier message: 15/10/2004, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo