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 :

Activer un private sub par la touche ESC


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut Activer un private sub par la touche ESC
    Mes AMIS du forum bonjour , bon WE printanier ,

    J'ai trouvé un code qui me permet de mettre une feuille en pleine ecran à son ouverture et restitue l'ancienne barre lors de la desactivation de la feuille.
    (Code en provenance de notre AMI Pierre FAUCONNIER).
    J'aurais souhaité simplement que par l'appui de la touche ESC une fois la feuille chargée retrouvé la barre d'outil originale . Je ne sais comment faire.
    avez vous une idée ???? ( Private Sub Workbook activate à l'ouverture) puis (workbook deactivate à la fermeture). Merci de me suggérer une solution.
    Cordialement GDS35

  2. #2
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour gds35 le forum deja avec un peu de code cela serait mieux autrement fait un recherche sur l instruction sendkeys & onkey

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut Activer un private sub par la touche ESC
    Bonjour , Leatitia , Bonjour le forum ,

    J'ai mis ces 2 codes en application. Je desire que lorsque la feuille est chargé , avec ESC reafficher l'ancienne barre d'outil cad activer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub Workbook_Deactivate()
    Private Sub Workbook_Activate()'
    ' MASQUER LA BARRE D'OUTILS
    '
    Dim Barre As CommandBar
    Set Barres = New Collection
    For Each Barre In Application.CommandBars
    If Barre.Visible = True And _
    Barre.Name <> "Worksheet Menu Bar" Then
    Barres.Add Barre.Name
    Barre.Visible = False
    End If
    Next Barre
    Application.CommandBars("worksheet menu bar").Enabled = False
    End Sub
    Private Sub Workbook_Deactivate()
    '
    ' REAFFICHAGE ANCIENNE BARRE D'OUTILS
    '
    Dim Barre As Variant
    For Each Barre In Barres
    Application.CommandBars(Barre).Visible = True
    Next Barre
    Application.CommandBars("worksheet menu bar").Enabled = True
    End Sub
    Cordialement Gérard

  4. #4
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour gds35 le forum tu es sur du code !!! sur les 2 premieres ligne je veus bien qu il est une erreur de copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Workbook_Deactivate()
    Private Sub Workbook_Activate()'
    pour le reste chez moi le code plante

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    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 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Salut

    Il y a, comme le dit Laetitita, un problème de recopie du code. De plus, tu as oublié de mettre la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Barres As Collection
    en début de module...

    Cela étant, il faut le modifier comme suit:
    Dans le module du classeur, il faut supprimer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Barres As Collection
    qui ne peut plus se trouver à cet endroit.
    Dans la procédure d'activation du classeur, il faut ajouter la ligne qui va permettre la gestion de la touche. La procédure qui restaure les barres est sortie de l'événement de désactivation et va être placée dans un module standard, pour pouvoir être appelée facilement lors de l'utilisation de Escape. La procédure événementielle de désactivation du classeur est modifiée en conséquence.
    Dans le module du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Barres As Collection
    Dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Barres As Collection
     
    Sub ActiverBarres()
    '
    ' REAFFICHAGE ANCIENNE BARRE D'OUTILS
    '
    Dim Barre As Variant
    For Each Barre In Barres
    Application.CommandBars(Barre).Visible = True
    Next Barre
    Application.CommandBars("worksheet menu bar").Enabled = True
     
    End Sub
    Cela étant, ce n'est pas le meilleur choix que celui d'utiliser la touche ESCAPE car c'est une touche qui a déjà une utilisation importante dans Excel, et la détourner de son emploi habituel peut s'avérer problématique pour l'utilisateur

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    rebonjour le fil fil le forum
    salut pierre merci pour les infos donnees en partant sur ton concept.. que je connaissais en autre. super ton code j archives
    dans thisworkbook

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Workbook_Activate()
    Dim Barre As CommandBar
    Set Barres = New Collection
    For Each Barre In Application.CommandBars
    If Barre.Visible = True And _
    Barre.Name <> "Worksheet Menu Bar" Then
    Barres.Add Barre.Name
    Barre.Visible = False
    End If
    Next Barre
    Application.CommandBars("worksheet menu bar").Enabled = False
    Application.OnKey Key:="{ESC}", procedure:="ActiverBarres"
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Deactivate()
    'restauration de la touche"{ESC}"a la fermeture en cas ou tu utilise pas la macro Sub ActiverBarres()
    Application.OnKey Key:="{ESC}"
    End Sub
    code ci dessus a tester avec d autres classeur ouvert voir si la touche escape a toujours sa fonction originel

    dans un module standard comme le dis pierre

    Option Explicit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Barres As Collection
     Sub ActiverBarres()
    Dim Barre As Variant
    For Each Barre In Barres
    Application.CommandBars(Barre).Visible = True
    Next Barre
    Application.CommandBars("worksheet menu bar").Enabled = True
     Application.OnKey Key:="{ESC}" 'restauration de la touche"{ESC}"
     End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut Re touche ESC
    Bonjour le forum , Pierre , Leatitia ,

    J'ai donc testé les codes que vs m'avez fournis avec succes , il fonctionnent ss Pb , lorsque je les incorpore dans mon Prg global , je charge plusieurs USF les uns à la suite des autres , et lorque ces USF sont affichés " ESC " est inopérant. Il y a t'il un moyen de remédier à ce Pb ????

    Encore MERCI de votre Aide Cordialement GDS35

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour gds35 le forum comme le dirait pierre c est pas un bon choix de prendre {ESC} choisis en un autre par exemple arret defilement {SCROLLLOCK}

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut Re Re Touche ESC
    Re bonsoir , le Forum , Pierre ,

    Désolé , je suis un Ane Bâté , et ne tient pas compte de vos conseils !!!!!!!. je vais tester avec la touche {SCROLLLOCK} si malgré un USF Ouvert , cela marche . Je vous tiens au courant .

    ordialement 35

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut RE RE RE TOUCHE ESC
    RE bonsoir , le forum ,

    Comme préconisé par LEATITIA j'ai utilisé la touche scrolllock et aussi la touche F12 , cela marche ss pb , sauf si un USF est affiché .

    Bonne soirée. A+ je reprendrais le fil jeudi soir .

    Cordialement GDS35

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    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 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Un userform est modal par défaut... Donc, lorsque le userform est affiché, l'interception de la pression sur les touches n'est plus gérée par Excel... Il faut que le userform "prenne la main", par exemple via la gestion de l'événement KeyUp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
    End Sub
    dans laquelle tu pourras gérer la touche pressée, par exemple via un bloc Select ... End Select

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut RE RE RE TOUCHE ESC
    Bonsoir le forum , Leatitia , Pierre ,

    Je vous remercie de vos precieux cours en vba , je vais tenter de les mettre en appication et vous tiendrais au courant.
    Bonne soirée . Cordialement GDS35

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

Discussions similaires

  1. [XL-2010] Associer des Private Sub à un controle créé par macro
    Par Capovsky dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/10/2012, 17h14
  2. Comment activer plusieurs sub par un bouton
    Par Claude_B dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 26/10/2011, 12h40
  3. Réponses: 4
    Dernier message: 21/11/2008, 17h27
  4. valider le contenu d'un textbox par la touche entrée
    Par camilla dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2005, 16h02
  5. [débutant] Ordre des champs de saisie par la touche tab
    Par almisuifre dans le forum C++Builder
    Réponses: 10
    Dernier message: 03/03/2005, 20h45

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