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 :

[E-03] fermeture d'excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut [E-03] fermeture d'excel
    bonjour,

    je suis dans un userform lancé a l'ouveture d'une feuille excel.
    je suis entrain de gerer un erreur et dans la gestion de l'erreur, je cherche a fermer le userform, et excel parce que l'utilisateur doit retourner dans windows et corriger ce qu'il a fait!

    je ne comprend pas pourquoi avec ce code j'obtient la fermeture du userform, du classeur mais pas de l'appliaction excel GRRR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       USERFORM.Hide
                Dim OxlApllication  As excel.Application
                Set OxlApllication = excel.Application
                Dim OxlClasseur     As excel.Application
                Set OxlClasseur = excel.Application
                OxlClasseur.ActiveWorkbook.Saved = True
                OxlClasseur.ActiveWorkbook.Close xlDoNotSaveChanges
                OxlApllication.Quit
                Unload USERFORM
    pouvez vous m'apporter de l'eau a mon moulin?

    merci d'avance (ca me permettra de garde mes cheveux en place)

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Je vais essayer de t'économiser quelques cheveux

    Tu fermes le classeur donc par la même occasion tu quittes la procédure et ceci juste avant la ligne qui commande la fermeture de l'application.

    Essaye comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    USERFORM.Hide
                Dim OxlApllication  As excel.Application
                Set OxlApllication = excel.Application
                Dim OxlClasseur     As excel.Application
                Set OxlClasseur = excel.Application
                OxlClasseur.ActiveWorkbook.Saved = True
                'OxlClasseur.ActiveWorkbook.Close xlDoNotSaveChanges '<-- supprime cette ligne
                OxlApllication.Quit
                'Unload USERFORM '<-- cette ligne ne sert à rien vu que l'application est fermée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    ok merci ca fontion super bien

    mais a l'issu de cette reponse j'ai un autre question du au changement que tu me demande de faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OxlClasseur.ActiveWorkbook.Saved = True
                'OxlClasseur.ActiveWorkbook.Close xlDoNotSaveChanges '<-- supprime cette ligne
    peux tu me dire ce que ca change de faire l'une ou l'autre ligne parce que la je suis un peu perdu.

    pour moi cette ligne lui dit qu'il n'y a pas eu de changement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'OxlClasseur.ActiveWorkbook.Close xlDoNotSaveChanges '<-- supprime cette ligne
    et ta ligne lui dirais que c'est deja sauvé ?????

    merci d'avance

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Ces deux lignes font double emploi, ce sont deux syntaxes différentes qui obtiennent le même résultat --> fermer le classeur sans enregistrer les modifications
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ActiveWorkbook.Saved = True
      La propriété Saved prend la valeur False dès qu'il y a modification dans le classeur et prend la valeur True à chaque enregistrement. Le fait de forcer la valeur à True juste avant le fermeture du classeur fait "croire" à Excel que ce classeur n'a pas été modifié depuis son dernier enregistrement.
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ActiveWorkbook.Close xlDoNotSaveChanges
      Dans ce cas ci, on ferme le classeur en anticipant la question "voulez-vous enregistrer les modifications" et en y répondant par NON (xlDoNotSaveChanges)
    • Une 3ème syntaxe possible, similaire à la 2ème
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ActiveWorkbook.Close False '<-- True si on veut sauvegarder les modifs

    Petite remarque pour terminer, plutôt que d'écrire ActiveWorkbook, utilise ThisWorkbook, ce qui évitera un problème dans le cas où le classeur en question n'est pas le classeur actif lors de l'exécution de la procédure. C'est une règle générale qu'il faut essayer d'adopter, éviter d'utiliser les ActiveCell, ActiveSheet, ActiveWorkbook et ActiveMachin en tout genre.

    .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    ok, merci pour la reponse

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2006, 14h54
  2. [VBA-E]Fermeture Application Excel
    Par malloc_92 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/04/2006, 11h46
  3. [Automation Excel] fermeture d'excel depuis ACCESS
    Par GESCOM2000 dans le forum Access
    Réponses: 3
    Dernier message: 07/01/2006, 19h29
  4. probleme de fermeture d'excel
    Par passie dans le forum Access
    Réponses: 2
    Dernier message: 08/11/2005, 19h34
  5. Fermeture Fichier Excel
    Par beurnoir dans le forum Access
    Réponses: 22
    Dernier message: 28/10/2005, 16h22

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