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 :

Fichier bloqué à la fermeture [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 230
    Points : 460
    Points
    460
    Par défaut Fichier bloqué à la fermeture
    Bonjour,

    je cherche une explication et une solution à ce problème suivant :

    j'ai un fichier (F1) qui en ouvre un autre (F2)

    je ferme F1 de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveWorkbook.Close savechanges:=False
    End Sub
    ensuite je ne peux plus fermer F2 directement
    par contre si je change manuellement de feuille sur F2 alors ensuite il se ferme bien
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Quelle instruction utilisez-vous pour que le fichier (F1) en ouvre un autre (F2) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 230
    Points : 460
    Points
    460
    Par défaut
    J'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open pathcatal
    avec pathfile = chemin complet du fichier

    les 2 fichiers sont dans le même répertoire
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je suppose que ces fichiers sont liés à ton application multi-fichiers dont tu as déjà parlé sur ce forum. A priori, les codes que tu donnes ne posent pas de problème.

    Si tu ouvres le fichier 2 sans passer par le fichier 1, tu peux le fermer sans soucis? Y-a-t-il du code dans le fichier 1 qui est exécuté avant qu'il soit fermé, ou sert-il "simplement" à ouvrir x fichiers? Combien de fichiers sont ouverts en même temps? Entre le moment où tu fermes le 1 et celui où tu fermes le 2, que fais-tu dans le 2? Y a-t-il par exemple des Application.ScreenUpdating = False qui n'auraient pas été remis à True? Normalement, ils se remettent à True en sortie de proc, au moment de rendre la main à Excel, mais dans certaines situations, ça ne se passe pas ainsi et il est toujours souhaitable de les rétablir par code.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 230
    Points : 460
    Points
    460
    Par défaut
    Bonjour et merci de regarder mon problème,

    Je suppose que ces fichiers sont liés à ton application multi-fichiers dont tu as déjà parlé sur ce forum.
    Oui, c'est un nouveau fichier
    Si tu ouvres le fichier 2 sans passer par le fichier 1, tu peux le fermer sans soucis?
    Oui le fichier 2 est un catalogue qui ne contient que des données, il sert un peu partout sans problème dans l’application
    Y-a-t-il du code dans le fichier 1 qui est exécuté avant qu'il soit fermé, ou sert-il "simplement" à ouvrir x fichiers?
    Oui le fichier 1 contient des macros qui font différents traitements, à noter que c’est un nouveau fichier donc probable que j’ai commis quelques erreurs, il n’ouvre pas d’autre fichier
    Combien de fichiers sont ouverts en même temps?
    Uniquement fichier 1 et fichier 2
    Y a-t-il par exemple des Application.ScreenUpdating = False
    Oui, mais j’ai lu sur ce forum que c’était faire du travail pour rien puisque remis à "True" en fin.
    J’ai ajouté
    Application.ScreenUpdating = True dans "Before_close" cela ne change rien

    Par contre j'ai fait un autre test qui me laisse perplexe:

    En plus des fichiers 1 et 2, j'ai ouvert manuellement un fichier Excel (fichier 3) qui n'a rien à voir avec l'application.

    Je ferme fichier 1 et dans la foulée fichier 2 --> fichier 2 ne se ferme pas

    Je ferme fichier 1, je vais sur fichier 3 sans rien y faire, je reviens sur fichier 2 il se ferme sans problème
    Il ne savait pas que c'était impossible, donc il l' a fait...

  6. #6
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    au lieu de "ActiveWorkbook.Close savechanges:=False", essayez d'activer F2 avant de fermer F1. Je soupçonne un décalage dans les instructions ...

  7. #7
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 230
    Points : 460
    Points
    460
    Par défaut
    Bonjour

    j'ai résolu le problème fermant le fichier avant l'exécution de "Sub Workbook_BeforeClose" et donc en supprimant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveWorkbook.Close savechanges:=False
    End Sub
    Il ne savait pas que c'était impossible, donc il l' a fait...

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

Discussions similaires

  1. Fichier bloqué après un CTRL+F2
    Par ShaiLeTroll dans le forum EDI
    Réponses: 2
    Dernier message: 10/01/2008, 18h26
  2. Réponses: 2
    Dernier message: 04/05/2007, 11h33
  3. Réponses: 3
    Dernier message: 25/07/2006, 18h46
  4. [VB6]ouverture d'un fichier bloqué par mot de passe
    Par toytoy18 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/06/2006, 18h21
  5. [C#] bloqué la fermeture d'une fenetre
    Par padodanle51 dans le forum Windows Forms
    Réponses: 36
    Dernier message: 19/04/2006, 12h58

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