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

Deski Discussion :

Fermer un classeur Excel en AfterRefresh


Sujet :

Deski

  1. #1
    Membre du Club Avatar de anarchiste-mouton
    Homme Profil pro
    ceci
    Inscrit en
    Décembre 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ceci
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2017
    Messages : 69
    Points : 68
    Points
    68
    Par défaut Fermer un classeur Excel en AfterRefresh
    Bonjour à tous,

    Je souhaiterais fermer un classeur Excel particulier après raifraichissement de mon rapport, la sauvegarde ne m'importe peu.

    J'ai un bout de code qui fonctionne très bien en VBA Excel mais on ne peux pas dimensionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    quelquechose As Workbook ("Bidule.xlsm")
    en VBA BO.

    Existe-t-il une solution sans "killer" le processus Excel?

    Très bonne journée

    Anarchiste-mouton

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Informatique-Statistique
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informatique-Statistique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Peux-tu essayer ce code ?


    Set myXL = GetObject(, ""Excel.application"")

    Set myXL = GetObject("nom fichier.xls")

    myXL.Application.Close


    Khalid

  3. #3
    Membre du Club Avatar de anarchiste-mouton
    Homme Profil pro
    ceci
    Inscrit en
    Décembre 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ceci
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2017
    Messages : 69
    Points : 68
    Points
    68
    Par défaut
    Bonjour Khalid, merci de prendre le temps de me répondre,

    En déclarant myXL as Object j'ai une erreur à l'éxecution de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set myXL = GetObject("Budgets.xlsm")
    Dans un premier temps Excel m'indique : "Désolé... Nous ne trouvons pas Budgets.xlsm. Peut-être l'avez-vous déplacé, renommé ou supprimé ?" alors que c'est le seul fichier d'ouvert.
    Puis VBA se stoppe.
    Peut-être faut-il préciser l'emplacement du fichier?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Informatique-Statistique
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informatique-Statistique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Oui, il faut préciser le chemin complet du fichier.

    Exemple : "C:/documents/bidule.xlm"


    Edit : Tu peux ne pas préciser le chemin complet du fichier en question, et d'utiliser le code suivant :

    Si tu es sûr que ce fichier sera toujours ouvert au moment de l'exécution de ce code, il faut ajouter ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Set myXL = GetObject(, ""Excel.application"") 
     
    Set myXL = myXL.Application.Workbooks("bidule.xlm")
     
    myXL.Application.Close

    Khalid.

  5. #5
    Membre du Club Avatar de anarchiste-mouton
    Homme Profil pro
    ceci
    Inscrit en
    Décembre 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ceci
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2017
    Messages : 69
    Points : 68
    Points
    68
    Par défaut
    Merci Khalid,

    Oui le fichier en question s'ouvre en BeforeRefresh et se ferme en AfterRefresh (il sert juste comme fournisseur de données).

    Le problème est résolu, voici le code avec 2 ou 3 petites modifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim myXL As Object
     
      Set myXL = GetObject(,"Excel.application")
      Set myXL = myXL.Application.Workbooks("bidule.xlsm")
         myXL.Close Savechanges:=False
     
      Set myXL = GetObject(,"Excel.application")
         myXL.Quit
    Encore merci à bientôt pour de nouveaux problèmes

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

Discussions similaires

  1. Impossible de fermer un classeur Excel
    Par seremei dans le forum Langage
    Réponses: 5
    Dernier message: 08/01/2013, 11h29
  2. Fermer un classeur Excel à la fin d'une macro
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2008, 19h29
  3. [OLE Excel] Fermer un classeur Excel
    Par Shuret dans le forum C++
    Réponses: 1
    Dernier message: 26/05/2008, 10h09
  4. Fermer le classeur Excel BD pour la fusion word
    Par sailor lvcv dans le forum VBA Word
    Réponses: 4
    Dernier message: 28/03/2007, 16h29
  5. Fermer les classeurs excel sauf celui actif
    Par Balian1412 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2006, 10h35

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