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 :

Problème de fermeture de 2 fichiers Excel dont un présente un évènement BeforeClose


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut Problème de fermeture de 2 fichiers Excel dont un présente un évènement BeforeClose
    Bonjour

    J'ai créé un fichier 1 Excel contenant un évènement BeforeClose.
    Lorsque j'ouvre un autre fichier 2 Excel en parallèle puis qu'à partir de celui-ci je souhaite fermer tout Excel, l'évènement BeforeClose se produit sur le fichier 1 (qui devient actif) mais Excel ne se ferme pas. Je dois de nouveau demander la fermeture à partir de ce fichier 1 actif pour obtenir la boite de dialogue de fermeture de tous Excel.

    Comment résoudre ce problème ?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Montre un peu le code que tu a dans Before_Close
    A+
    EDIT:
    Mais peut-être une idée..
    Déclarer une variable boolean générale dans le dessus de ThisWorkbook
    dans l'événement activate mettre cette variable =false
    et dans l'événement Deactivate la mettre à true
    dans le beforeClose mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        cancel = LaVariable
        If Lavariable then exit sub
    Jai pas testé et il faudra peut-être inverser la valeur de LaVariable

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    Voilà le code.

    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
    16
    17
    18
    19
    20
    21
    22
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    Dim msg As String
     
    Workbooks(nomfichier).Sheets("Fiche actions").Activate
    '##### A LA FERMETURE DU FICHIER, DEMANDER SI MISE A JOUR AUTOMATIQUE DE LA DATE DE
    '##### MODIFICATION QUI VIENT SE COLLER DANS LA CELLULE K2
        msg = MsgBox("Voulez-vous changer la date de modification ?" & vbCrLf & vbCrLf & _
        "(Penser à changer le n° de révision dans le fichier et dans son nom !)", vbYesNo + vbInformation, _
        "DATE DE MISE A JOUR")
        If msg = vbYes Then
            Range("K2").Value = Format(CStr(Date), "d mmm yy")
        End If
    '##### APPEL DE LA ROUTINE DE GRISAGE DES LIGNES DES ACTIONS FAITES
        Call GriserLigne
    '##### CONTROLE DE ACTIONS SANS AFFECTATION DE ZONE NI DISCIPLINE
        Call ControleActionSansAffectation
     
        Application.OnKey "^>"
    Application.ErrorCheckingOptions.NumberAsText = True
     
    End Sub
    La variable "nomfichier" est déclarée public parce qu'elle enregistre à l'ouverture le nom de ce fichier pour pouvoir le réutiliser à la fermeture et effectuer sur celui-ci (et non les autres classeurs ouverts) les quelques opérations demandées.
    Il y a également appel de 2 sous-routines dans lesquelles je dois aussi appeler le classeur "nomfichier".

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Mais si tu veux garder la fonction active ,après ton traitement essaye de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Application.DisplayAlerts= False

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    J'ai essayé mais ça ne change rien.

    Je ne comprends pas vraiment pourquoi utiliser cette fonction qui permet de désactiver les messages d'erreur pendant l'exécution de la macro.
    Je n'ai pas de message d'erreur mais juste une boite de dialogue de choix de mise à jour et une d'avertissement. Après leur exécution, la fermeture d'Excel s'arrête.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Cette méthode n'arrète pas les messages d'erreurs mais justement les avertissements à l'utilisateur tel que sauver,sauver sous, etc..
    Il y à aussi moyen de dire à Excel que le fichier est sauver mais trou de mémoire je ne revient pas dessus.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/08/2008, 20h01
  2. [POI] Problème écriture/lecture dans un fichier Excel
    Par steuve dans le forum Documents
    Réponses: 6
    Dernier message: 02/07/2007, 15h47
  3. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 17h10
  4. problème d'ouverture d'un fichier EXCEL!!
    Par JauB dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/11/2005, 13h37
  5. Réponses: 7
    Dernier message: 23/11/2005, 18h20

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