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 :

capture de touche ctrl+ double clic [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut capture de touche ctrl+ double clic
    Salut,
    J'ai actuellement une macro qui me modifie une cellule si je double clic dessus en fonction de sa valeur actuelle. Pour ça j'utilise la procédure 'beforedoubleclic'. Maintenant j'aimerai sécuriser cette action en contrôlant qu'une touche soit appuyée lors du double clic, par exemple 'ctrl'. En cherchant sur le net j'ai trouvé des solutions pour capturer une touche, mais je n'arrive pas à les associer au double clic (soit c'est aussi des procédures, soit ça s'applique à des forms).

    Merci par avance de votre aide/idée/piste/encouragement.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Avec "CTRL", je ne sais pas faire. C'est cependant possible avec "ESC"; dans le module ThisWorkbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.OnKey "{ESC}"
    End Sub
     
    Private Sub Workbook_Open()
        Application.OnKey "{ESC}", "essai"
        Application.EnableEvents = False
    End Sub
    Dans le module de la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        MsgBox "toto" 'à remplacer par ton code
        Application.EnableEvents = False
    End Sub
    Dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub essai()
        Application.EnableEvents = True
    End Sub

  3. #3
    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

    Bonjour, bonjour,

    les touches Ctrl, Alt, Shift et Tab étant déjà interceptées par Excel, le double clic combiné
    avec l'une d'entre elles n'est pas détecté par l'évènement spécifique au double clic !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Declare Function GetAsyncKeyState% Lib "User32" (ByVal vKey%)
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
     
        If GetAsyncKeyState(27) < 0 Then
    '       code ici quand ECHAP + double clic détecté
        End If
    End Sub
    Au lieu de combiner avec la touche ECHAP, possible de l'effectuer avec la touche de verrouillage majuscule
    en remplaçant dans la ligne n°6 le nombre 27 par 20 …

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Merci à vous trois.
    J'ai testé la solution de Marc-L et ça marche très bien. Il ne me reste plus qu'à comprendre pourquoi... ^^ ( jijie)

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

Discussions similaires

  1. écoute de touches, de double clics sur un JTable
    Par Nicool dans le forum Composants
    Réponses: 7
    Dernier message: 06/06/2006, 12h52
  2. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22
  3. [débutant] Listview et double-clic
    Par Runlevel dans le forum C++Builder
    Réponses: 12
    Dernier message: 29/06/2004, 19h44
  4. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57
  5. [VB6] capture de touche par API
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/11/2003, 15h18

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