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 :

Comment fermer un fichier excel si il est ouvert mais sans bug s'il n'est pas ouvert [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Comment fermer un fichier excel si il est ouvert mais sans bug s'il n'est pas ouvert
    Bonjour à tous,


    2/ Comment fermer un fichier excel si il est ouvert mais que ça ne fasse pas beuguer le programme si il ne l'est pas?



    Merci beaucoup

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Avinetor et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WB As Workbook
    Dim Flg As Boolean
    For Each WB In Workbooks
        If WB.Name = "Classeur.xls" Then 
            Flg = True
            exit for
        end if
    Next WB
    If Flg Then WB.Close
    A+

  3. #3
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,
    Une autre solution plus simple mais beaucoup moins élégante et peut être moins robuste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    On Error Resume Next
    Workbooks("Classeur1.xls").Close
    On Error GoTo 0
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    Gorfael, 2 remarques sur ton code, en toute naîveté :
    1) Pourquoi fais tu le .close en dehors de la boucle et pas dedans directement ?
    2) J'aurais personnelement aussi positionné l'attribut .saved à True avant le close, mais il est vrai que ce n'est pas demandé.

    Désolé. le vendredi j'ai souvent des remarques stupides.

    Excellent week-end à toi.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Godzestla et le forum
    Pourquoi fais tu le .close en dehors de la boucle et pas dedans directement ?
    C'est plutôt pour décrire un principe de fonctionnement dans une macro, pour effectuer un traitement sur un objet dont je n'ai pas d'autre moyen de vérifier l'existence.
    Il est vai qu'on peut faire le traitement directement, mais ça permet un traitement en cas d'absence, que tu ne peux effectuer directement, dans la boucle, à travers le if Flg.... Else .... endif, ce qui n'est pas demandé.
    Et puis à minuit passé...
    J'aurais personnelement aussi positionné l'attribut .saved à True avant le close, mais il est vrai que ce n'est pas demandé.
    Oui, c'est une possibilité, mais si tu veux conserver la date de la dernière modif et pas de la dernière consultation...
    Désolé. le vendredi j'ai souvent des remarques stupides.
    Moi, c'est sans distinction de jour
    A+

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Merci à tous,

    Je n'ai essayé que la première solution qui fonctionne très bien

    Cordialement

    Avinetor

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

Discussions similaires

  1. Comment fermer un fichier Excel avec Access
    Par zoom61 dans le forum VBA Access
    Réponses: 22
    Dernier message: 24/08/2017, 09h33
  2. comment fermer mon fichier excel quand mon poste est verouiller?
    Par didouss dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/11/2012, 10h25
  3. TFileStream.Create : Comment fermer le fichier ?
    Par spyk dans le forum Langage
    Réponses: 12
    Dernier message: 28/08/2005, 17h40
  4. comment ouvrir un fichier excel ?
    Par vdavid1982 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/07/2005, 12h05
  5. comment fermer un fichier Excel depuis Access?
    Par audrey_desgres dans le forum Access
    Réponses: 14
    Dernier message: 21/06/2005, 12h43

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