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 :

Instruction activeworkbook.close (false) laisse un process actif


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 25
    Par défaut Instruction activeworkbook.close (false) laisse un process actif
    Bonjour à tous.

    J'ai un souci avec l'instruction VBA de fermeture des fichiers activeworkbook.close (false)

    Voici le contexte :

    Depuis plusieurs années j'ai des logiciels qui font des export de données en fichier excel. Le fichier extrait écrase le précédent. (ex. fichier : rapport.xls)
    Dans mes fichiers excel j'ai des macros exécuté depuis des fichiers (ex. fichier : dest.xlsm)

    La macro du fichier dest.xlsm va :
    - ouvrir rapport.xls
    - sélectionner toutes les données
    - copier la sélection
    - focus sur dest.xlsm
    - sélection de la cellule de destination
    - Copie valeur des données
    - Application.CutCopyMode = False
    - focus sur rapport.xls
    - fermeture du fichier actif sans sauvegarde.

    Cette procédure est utilisée depuis des années.

    Depuis 3 jours j'ai un souci avec la fermeture du fichier rapport.xls

    Lorsque je fais mon premier export et que je lance la macro tout fonctionne.
    Mais lors de l'export suivant qui doit écraser le fichier rapport.xls j'ai un message d'erreur :
    "Message : File error : C:\rapport.xls (Theprocess cannot access the file because it is being used by another process)"

    Je suis obligé soit d'ouvrir manuellement le fichier rapport.xls et le fermer (étrangement il me laisse ouvrir le fichier sans me dire qu'il est déjà ouvert...)
    Soit de fermer toute l'application Excel.

    Le souci est avec différents systèmes qui font des export automatiques, dont certains en réseau (l'exemple était sur un fichier en local) qui sont utilisé par d'autres personnes et qui les bloquent aussi.

    Merci de votre aide.

    MS Excel 2016 - 32 bit
    MS Office Pro 2016.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Je pense que votre problème est lié à ce que les 2 fichiers sont ouverts dans la même instance excel. il faut donc ouvrir le fichier .Xls dans un autre excel (instance) que celui qui contient la macro.
    Voir la littérature ici:
    https://excel-malin.com/codes-source...nstance-excel/

    VCdlt

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 25
    Par défaut
    Bonjour,

    merci pour votre réponse que je viens de tester.
    Malheureusement cela pose d'autres soucis.
    Vu que je dois naviguer entre deux fichiers ouverts à l'aide du code VBA ils doivent être ouverts dans la même instance.

    depuis quelques jours un second PC de mon entreprise à le même souci.

    Ne serait ce pas dû à des mises à jour de office ?

    merci d'avance.

    Alessandro.
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Je pense que votre problème est lié à ce que les 2 fichiers sont ouverts dans la même instance excel. il faut donc ouvrir le fichier .Xls dans un autre excel (instance) que celui qui contient la macro.
    Voir la littérature ici:
    https://excel-malin.com/codes-source...nstance-excel/

    VCdlt

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Ne serait ce pas dû à des mises à jour de office ?
    Aucune idée autre que la solution que j'avais proposé.
    Désolé de ne pas pouvoir en dire plus, espérons qu'une autre personne puisse vous trouver une solution.
    Relancez le sujet dans une nouvelle discussion si d'ici quelques jours personne ne s'est manifesté.

    Cdlt

Discussions similaires

  1. L'instruction Application.EnableEvents = False ne fonctionne pas
    Par CatherineRennes dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/11/2012, 17h55
  2. process actif valide
    Par hugoclo dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 04/05/2008, 12h56
  3. ActiveWorkbook.close dans ThisWorkbook
    Par unfcool dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 25/05/2007, 15h05
  4. [XSD] gerer les processing-instruction ?
    Par linuxludo dans le forum Valider
    Réponses: 4
    Dernier message: 24/11/2005, 17h56
  5. Tester si un process est encore actif
    Par Damien2212 dans le forum Windows
    Réponses: 2
    Dernier message: 17/09/2004, 15h33

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