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

VBA Access Discussion :

Touches de fonction


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Touches de fonction
    Bonjour à tous,

    Je reviens après pas mal de temps créer une discussion sur ce forum. Comme mon pseudo l'indique je suis paysan dans le 03 et développeur amateur. Je développe actuellement (et bénévolement ) une base de gestion comptable pour une association, et sur un formulaire de saisie je voudrais dupliquer l'enregistrement précédent en appelant le VBA qui va bien par une touche de fonction (par ex "F7", souvent utilisé dans les logiciels du commerce).
    Ma question est: comment on crée un événement sur une touche de fonction, pour écrire un truc qui ressemblerait à "Private Sub F7_???()"

    Bon, je ne suis peut être pas clair, mais vous allez me remettre dans le droit chemin!

    Et milles excuses si ce sujet a déjà été abordé, je ne l'ai pas trouvé en tapant les mots clé "touche fonction".

    D'avance merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Tu peux t'inspirer de cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      Select Case KeyCode
        Case vbKeyF12
                'Ta procédure
      End select
    End sub
    Dernière modification par Invité ; 22/03/2015 à 17h40.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse!
    Alors j'ai essayé, mais le souci c'est qu'il semble que les touches de fonctions ne sont pas désactivés, c'est à dire qu'elle garde leur fonction habituelle dans Access, comme F4 = dérouler la liste.
    Pour essayer ton code j'ai demandé au VB de me renvoyer des messages:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_KeyDown()
     
      Select Case KeyCode
        Case vbKeyF12
            MsgBox "F12 Ok"
        Case vbKeyF8
            MsgBox "F8 Ok"
     
      End Select
    ça semble correcte?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai tout bien fait comme tu m'as montré, mais, ça marche pas... Quand je tape "f7" ma msgbox me renvoi bien "f7 ok" puis sa fonction par défaut de vérification d'orthographe reprend la main et j'ai un beau message "la vérification de l'orthographe est complète"...

    Pour le moment, j'ai ecrit ma fonction de copie des champs et elle s'active par dblclick sur le champs destinataire de la copie, mais je trouve ça moins ergonomique au moment de la saisie.

  6. #6
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Paysan03,

    il faut ensuite désactiver l'événement lié à cette touche :

    regarde ici : http://access.developpez.com/faq/?pa...cProcRaccourci

    Tu peux aussi regarder du côté de la macro autokeys

    jimbolion

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup Jimbolion, j'ai suivi ton lien, copié le code, mis à "true" la valeur de "keypreview".

    Donc mon problème est résolu. Sauf que maintenant que celui là est résolu, il en arrive un autre:

    Pour réaliser ma fonction "copier le champs de la ligne précédente", et avant de faire fonctionner les touches de fonctions, je me suis servi d'un événement sur dblclick. Donc dblclick sur le champs "compte" me lance le private sub adapté pour copier ce champs, et le dblclick sur le champs "libellé" me lance un autre private sub légèrement différent.
    Maintenant, je suis tout joyeux de pouvoir me servir de ma fameuse touche "F7" mais je me trouve devant le dilemme suivant: Quand je tape F7 avec le curseur sur le champs "compte" je veux qu'il me lance un code spécifique, et quand je tape F7 avec le curseur sur le champs "libellé", je veux qu'il me lance une autre séquence de code.
    Donc la question est: comment connaitre la position actuelle du curseur au moment où je tape sur la touche F7?

    J'ai trouvé ce petit article dans la FAQ:
    http://access.developpez.com/faq/?page=Ctrl#PosCurseur
    J'ai crée une zone de texte indépendante du nom de "mazdt"
    J'ai positionné la ligne de code copié dans la FAQ comme ça:
    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
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
      Select Case KeyCode
        Case vbKeyF7
          MsgBox "Vous avez appuyé sur F7"
          MsgBox mazdt.SelStart
        Case vbKeyF2
          MsgBox "Vous avez appuyé sur F2"
        Case vbKeyF3
          MsgBox "Vous avez appuyé sur F3"
        Case Else
          Exit Sub
      End Select
     ' Ensuite on annule l'effet normal de la touche
      KeyCode = 0
    Et cela me renvoie : "impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé"

    Pouf pouf...

  8. #8
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    paysan03,

    as-tu essayé le me.screenactivecontrol qui te renvoie le contrôle actif ?

    Jimbolion

Discussions similaires

  1. FireFox et touche de fonctions
    Par Robiwan59 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2006, 22h53
  2. Touches de fonction
    Par bvsud dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/12/2005, 21h05
  3. Problème avec les touches CTRL & FONCTIONS
    Par bidule999 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 03/12/2004, 09h52
  4. Linux : prb des touches CTRL + FONCTIONS...
    Par bidule999 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/12/2004, 09h51
  5. Détecter l'appui sur la touche de fonction F2
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/06/2003, 11h07

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