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 :

Probleme fermeture ficher 2 choix


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
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut Probleme fermeture ficher 2 choix
    bonjour

    j'ai un problème sur excel lors de la fermeture du fichier j'ai deux code a exécuté en fonction de l'appui sur une touche ou pas (touche ctrl ou maj)

    un code fermeture du ficher avec enregistrement et remise a zero du filtre
    deuxieme code fermeture du ficher avec enregistrement sans remise a zero du filtre

    code a exécuté sans l’appui d'une touche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ws As Worksheet
     
      For Each ws In Worksheets()
        If ws.FilterMode = True Then ws.ShowAllData
      Next ws
     
    If ThisWorkbook.Saved = False Then
            ThisWorkbook.Save
        End If
    code a exécute sur l'appui d'une touche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If ThisWorkbook.Saved = False Then
            ThisWorkbook.Save
        End If
    j’ai essai avec onkey mais ne marche pas
    cordialement et merci d'avance
    nicogef

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu ne peux pas avoir deux Workbook_BeforeClose pour le même classeur.

    Tu utilises un test quelconque pour déterminer l'action nécessaire et tu effectues l'une ou l'autre dans la même sub Workbook_BeforeClose

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nicogef Voir le message
    lors de la fermeture du fichier j'ai deux code a exécuté en fonction de l'appui sur une touche ou pas (touche ctrl ou maj)
    La macro Workbook_BeforeClose n'est pas un raccourci clavier qui se déclence avec telle ou telle touche. Elle se déclenche à la fermeture du classeur, c'est tout.

    Ce qu'il faudrait que tu fasses, ce sont deux macros classiques, éventuellement reliée à un raccourci clavier ou un bouton, et qui se terminent toutes les deux par ActiveWorkbook.Close.
    Et supprimer les Workbook_BeforeClose.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour

    le souci est que les personnes qui vont utilisé le ficher utilise la croix de fermeture et qu'il faut que le code( enregistré sans filtre) soit pris en compte

    et que si la personnes qui utilisera l’autre codes ne veut pas que le filtres se reinitialiser

    cordialement

    nicogef

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je t'ai dit quoi faire. Tout ce que cela te prend, c'est une variable publique de type booléen, avec un bloc If then else.

    = true tu enregistres le filtre
    = false pas d'enregistrement du filtre

    Même le clic sur la croix déclenche l'événement before_close.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nicogef Voir le message
    le souci est que les personnes qui vont utilisé le ficher utilise la croix de fermeture et qu'il faut que le code( enregistré sans filtre) soit pris en compte
    Perso, je suis pour l'éducation des utilisateurs plutôt que pour la mission impossible qui consisterait à essayer de pallier à toutes les conneries possibles et imaginables qu'ils pourraient faire.

    Quand tes utilisateurs auront perdu deux ou trois fois plusieurs heures de boulot parce qu'ils ne procèdent pas de la bonne manière, procéder correctement va devenir pour eux un réflexe pavlovien.
    Cette règle est aussi fiable que celles de la physique quantique : rien de démontre formellement que ce soit vrai mais aucune expérience réalisée n'est parvenue à la contredire.

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour Menhir,

    J'aime bien cette manière de procéder

    Edit : parfois pour des raisons indépendamment de notre volonté, on a pas le choix, mais quand c'est possible autant le faire
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    @Menhir et RYU

    oui la manière de procéder est éducative certes mais quand tu es patron tu pense plus loin car il s'agit de ton portefeuille
    et si tu peux éviter une perte d'argent avec les mauvaise manip qui retarde le boulot tu le fait
    mais tout le monde n'est pas patron
    tout le monde n'investi pas 20000 euro de ces deunier perso dans une entreprise
    a bon entendeur les donneurs de leçons
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Je m'en suis juste tenu aux réponses des primo intervenants et surtout à ceci :

    Citation Envoyé par nicogef Voir le message
    lors de la fermeture du fichier j'ai deux codes à exécuter en fonction de l'appui sur une touche ou pas (touche ctrl ou maj)
    Dans l'évènement unique de fermeture du classeur (Workbook_BeforeClose), juste tester l'état de chaque touche souhaitée
    conditionnant une action spécifique via l'instruction If par exemple …

    Ne pas oublier l'aide VBA interne comme le tutoriel de ce forum dédié aux évènements
    et l'Enregistreur de macro livrant une base de code sur un plateau.

Discussions similaires

  1. [VB.net] probleme fermeture avec close
    Par ptitesouris dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/05/2006, 11h42
  2. probleme fermeture application excel
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/05/2006, 09h50
  3. [VB6] Probleme fermeture application
    Par h82kev dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/03/2006, 13h18
  4. Probleme fermeture fenetre
    Par lemagicien dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/12/2005, 14h40
  5. Probleme fermeture Thread
    Par Raton dans le forum MFC
    Réponses: 4
    Dernier message: 29/09/2005, 09h51

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