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 :

L'évènement double click


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut L'évènement double click
    Bonjour, ça va pas voler très haut, j'essaie de me servir du double click. Dans mon test, un double click dans une case entraine l'apparition d'un message "vous avez cliqué dans telle cellule".

    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
      Cancel = True
    End Sub
    
    Sub Test()
    '
    ' Test Macro
    ' Macro enregistrée le 24/06/2009 par Tomtom
    '
    ' Touche de raccourci du clavier: Ctrl+b
    '
    
      MsgBox "mouais"
      Worksheet_BeforeDoubleClick ???, True
    End Sub
    Le "Worksheet_BeforeDoubleClick" c'est une fonction d'Excel qui détecte un double click ?

    Que dois-je mettre à la place des points d'interrogation rouges ?
    Merci
    Tom

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut
    Je penses qu'il te faudrait lire quelque tutoriels, pour comprendre l'utilisation des procédure événementiel.

    Worksheet_BeforeDoubleClick est déclenché par excel a chaque fois qu'un utilisateur double click dans le tableau, lorsque qu'excel déclenche cette événement il renseigne lui même les différentes variables qui accompagnent l'événement.
    Ainsi ça n'est pas a toi de définir Target.

    Tu sembles vouloir déclencher un code lors de l'appui sur un raccourci clavier? si c'est le cas et si tu souhaites interagir avec la cellule sélectionné lors de l'appui sur le raccourci en question, il te faudra utiliser le mot clé ActiveCell, regarde dans l'aide excel pour plus d'explication sur sont utilisation.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Hum, d'accord. Oui j'ai lu quelques tutoriels, mais il manque toujours la formulation exacte du code. J'ai toujours accès au corps des fonctions que des gens créent pour d'autres, mais on ne voit jamais l'agencement de tout ça dans le code final. Et c'est là-dessus que je bloque.

    Worksheet_BeforeDoubleClick s'active toute seule ? Comment dois-je l'intégrer au code du module ? Je la mets au début du code du module avec :
    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 "Vous avez double cliqué sur la cellule " & Target.Address
      Cancel = True
    End Sub
    ?

    Et ensuite dans le corps de la macro j'ai pas besoin de l'appeler puisqu'elle s'appelle automatiquement ?

    Pour l'instant j'ai essayé ça et ça ne marche pas :

    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
     Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
      Cancel = True
    End Sub
     
    Sub Don()
    '
    ' Don Macro
    ' Macro enregistrée le 24/06/2009 par Tomtom
    '
    ' Touche de raccourci du clavier: Ctrl+b
    '
     
      MsgBox "Test"
     
    End Sub
    Cernez-vous mon problème ?
    Merci
    Tom

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Je crois que tu as encore besoin de tutos
    Plus sérieusement
    La macro Worksheet_BeforeDoubleClick
    va s'exécuter a chaque double clique tu doit y mettre l'ensemble de la procédure que tu veux réaliser ta macro Don ne va pas se lancer lors de ton double clique puisqu'elle na rien a voir. Un double clique déclanche uniquement Worksheet_BeforeDoubleClick. Tu n'a pas besoin de l'appeler puisque c'est le double clique qui l'appelle. Par contre tu peux dans la macro doubleclique appeler une autre macro.

    Le corsp de ta macro double quique va de
    Worksheet_BeforeDoubleClick à end sub c'est tout (la je crois que je commence a me répéter sérieusement) SI tu veux déclancher ta sub don tu doit l'appeler a partir de doubleclique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
      Cancel = True
      don
    End Sub
     
    Sub Don()
     
      MsgBox "Test"
     
    End Sub
    ou tu met directement le code dans la bonne sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
      Cancel = True
      msgbox "test"
    End Sub
    Est-ce suffisamment claire?

    Edit pour suivre la piste de qwarty des tutos qui pourrais t'aider sur les évènement des feuilles
    http://silkyroad.developpez.com/VBA/EvenementsFeuille/
    de thisworkbook
    http://silkyroad.developpez.com/VBA/EvenementsClasseur/

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut
    Ha je pense avoir compris...
    Ce n'est pas a toi de créer cette procédure, elle existe deja, il ne faut pas écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
    End Sub
    dans un module, quand tu es dans Visual Basic Application, tu as sur la partie gauche une arborescence ou tu retrouves les feuilles de ton classeur, les UserForms (s'il y en a) et les modules(s'il y en a).
    Dans la section Feuille tu as toute les feuille plus un objet ThisWorkBook.
    Si tu double clique sur un de ces objets( feuille ou ThisWorkBook) cela va ouvrir une fenêtre de code, sur la partie haute tu as 2 listes déroulantes.
    Dans la premier tu a 2 valeur "General" + "WorkSheet" pour une Feuille et "General" + "WorkBook" pour this workBook. Tu sélectionnes la 2eme entrée (Worksheet ou wokbook).
    Dans la 2eme liste tu trouveras maintenant la liste de tous les événements associés à ton objet.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Merci Qwazerty, c'était bêtement ça. Je viens de m'apercevoir que c'est expliqué dans un tuto, mais j'avais zappé le début pensnant que c'était de la base de la base.
    Merci Krovax, j'ai compris maintenant.

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

Discussions similaires

  1. JTable : évènements Double Click et sélection
    Par alex2746 dans le forum Composants
    Réponses: 3
    Dernier message: 06/05/2010, 10h23
  2. événement JTable pour un double click
    Par hysah dans le forum Composants
    Réponses: 2
    Dernier message: 27/11/2008, 15h45
  3. attendre un double click lors d'un événement
    Par FamiDoo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/01/2008, 00h15
  4. [VB.NET] DataGrid et double click
    Par mic56 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 01/11/2006, 04h37
  5. OnMouseUp et double click
    Par DBBB dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/12/2004, 16h02

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