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 :

Intéraction détection clic droit/clic gauche sur une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté Avatar de Tonton Nico
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 398
    Points : 1 320
    Points
    1 320
    Par défaut Intéraction détection clic droit/clic gauche sur une cellule
    Bonjour tout le monde,

    J'aimerais savoir s'il y a plusieurs façon ou astuce de gérer les interaction clic droit/clic gauche, je m'explique car je suis déjà tombé sur ce problème plusieurs fois:

    Pour faire simple par exemple je voulais faire que quand on clic gauche de la souris sur une case, elle se remplie avec "Dossier complet" et lancer une macro X et avec un clic droit "Dossier en cours" qui lance un macro Y.
    J'utilisais donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet_BeforeRightClick
    pour détecter le clic droit et comme cela n'existe pas pour le clic gauche, il y a que le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet_SelectionChange
    Bon j'imagine que vous voyez le problème arriver car le BeforeRightClick active en premier le SelectionChange qui du coup lance la macro X avant la macro Y et ça ne m'arrange pas du tout !

    J'ai trouvé une solution sur internet :

    'The declaration tells VBA where to find and how to call the API
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If KeyPressed(vbKeyRButton) = True Then Exit Sub
    End Sub

    'The function returns whether a key is pressed or not
    Public Function KeyPressed(ByVal Key As Long) As Boolean
    KeyPressed = CBool((GetAsyncKeyState(Key) And &H8000) = &H8000)
    End Function
    Je ne comprends pas ce que la fonction KeyPressed fait clairement mais cela à l'air de fonctionner, on est obligé de passer par une API ou il y a d'autre solution possible?car je ne suis pas du tout au fait de l'utilisation de ces API user32, cela peut poser des soucis sur certains windows? ou selon la version d'excel? ou pas plus de soucis que ça comme n'importe quelle macro VBA? ou au contraire c'est plus fiable que les macros fait par des utilisateurs ^^

    Merci d'avance de vos retour
    Tonton Nico
    TontonNico

    On me dit souvent que je ressemble à Einstein... mais plutôt à Frank que Albert

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Dans la mesure ou 95% des utilisateurs se déplacent dans Excel en cliquant sur une cellule, voire même pour beaucoup, valident leur saisie en cliquant n'importe où, je trouve l'idée de déclencher une macro sur un simple clic très risquée : tu mets le pied dans un énorme chewing-gum qui va ensuite rester collé à ta godasse et rendre la progression difficile...

    Le selectionchange se déclenche autant au clavier qu'à la souris, donc encore pire...

    Joue sur double-clic / clic droit éventuellement
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre expérimenté Avatar de Tonton Nico
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 398
    Points : 1 320
    Points
    1 320
    Par défaut
    tu as raisons il vaut mieux faire attention ^^

    Disons que dans le beforerigghtclick ou selectionchange, je vérifie qu'on est bien dans la colonne G et que la ligne est remplie, ça limite beaucoup les soucis mais vu que c'est un "problème" que j'ai déjà rencontré je me demandais s'il y avait des solutions plus facile ou une astuce quand on veut forcement utiliser cela

    Edit: je prends en compte l'astuce du double clic qui peut régler le problème dans pas mal de cas ! merci


    Merci de ta réponse en tout cas !
    TontonNico

    On me dit souvent que je ressemble à Einstein... mais plutôt à Frank que Albert

Discussions similaires

  1. [XL-2010] Clic bouton droit sur une cellule et plus
    Par mlww dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/04/2017, 13h55
  2. Différencier un clic droit et gauche sur QTableView
    Par ccfconsulting dans le forum Débuter
    Réponses: 9
    Dernier message: 15/02/2013, 15h18
  3. CTRL + Clic gauche sur une variable
    Par daydream123 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/01/2013, 10h41
  4. [E-03] VBA Clic droit sur une cellule
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/10/2008, 22h29
  5. Détection du clic gauche dans une cellule
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/08/2006, 04h53

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