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 :

[VBA][03]Contrôle survolé par la souris


Sujet :

VBA Access

  1. #1
    seb92400
    Invité(e)
    Par défaut [VBA][03]Contrôle survolé par la souris
    Hello,

    Je sèche sur un petit problème de programmation... Je n'arrive pas à trouver (en vba) une fonction qui me permet de retrouver quel est le nom du contrôle survolé par la souris (et non pas le nom du contrôle actif)...

    Est-ce possible sans utiliser les api ?

    Je pense qu'il faut utiliser au dépat l'évènement MouseMove pour effectuer une action... mais quel action donne le nom du contrôle survolé ???

    Merci d'avance...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Que veux-tu faire ? Afficher le nom du contrôle sur le formulaire ou le récupérer dans une variable pour un traitement ?

    Starec

  3. #3
    seb92400
    Invité(e)
    Par défaut
    Hi,

    J'aimerais récupérer le nom du contrôle sélectionné afin de changer l'apparence de celui-ci (dans le genre créer un lien comme sur une page html, par exemple).

    En fait, je peux traiter chaque affichage par quelques lignes de code, mais si j'ai 10 ou 15 contrôles, je multiplie les lignes de code. Donc, je voudrais créer une petite fonction qui me retourne le nom du contrôle survolé (dans une variable)...

    Merci...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Voici une petite fonction qui te permet de visualiser le contrôle survolé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
        Dim oCtrl As Control
        For Each oCtrl In Me.Controls
            oCtrl.ControlTipText = oCtrl.Name
        Next oCtrl
    End Sub
    Cela ne répond pas tout à fait à ta demande, à part crée une routine que tu appelles pour chaque contrôle sur le mouse move, je ne vois pas.

    Désolé

    Starec

  5. #5
    seb92400
    Invité(e)
    Par défaut
    Désolé
    Bah non, faut pas !!! Bien au contraire, ton aide est très appréciable !!

    Je vais regarder ton code et je donne des nouvelles...

    à part crée une routine que tu appelles pour chaque contrôle sur le mouse move
    Je pense que c'est ce que je vais faire, mais surtout ce que je veux pas, c'est écrire autant de fois le code qu'il y a de contrôles à traiter...

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    J'avais trouvé ceci sur officesystem.access.free.fr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TonContrôle_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     
    MaSub Me.TonContrôle
     
    End Sub
    Et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MaSub(ctl As Control)
     
    MsgBox ctl.Name
     
    End Sub
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  7. #7
    seb92400
    Invité(e)
    Par défaut
    Hi,

    Merci pour ce code... En fait, ça, c'est à peu près ce que je fais déjà... Mais justement, ce que je voudrais, c'est éviter de créer un évènement personnalisé pour chaque ctrl survolé... En fait, pour esayer d'être clair, je voudrais créer une fonction qui s'appelle par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDuContrôle(....) As String ou As Integer
    Qui me renvoie le nom ou le numéro du contrôle sélectionné... Donc, sur chaque évènement MouseMove, j'aurais juste à écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaVariable = NomDuContrôle(....)
    MsgBox MaVariable
    Voilà... Mais à mon avis, il va falloir que je mette le nez dans les API...

    En tout cas, je vais voir ce que je peux faire avec tout ça... Merci beaucoup...

  8. #8
    seb92400
    Invité(e)
    Par défaut
    Hi,

    Finallement, je viens de trouver un truc tout simple (en adaptant l'idée de Domi2), en combinant un peu toute cette discussion...

    Il s'agit de créer une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Function EssaiMouseMove(ctrl As Control)
     
        MsgBox ctrl.Name
     
    End Function
    Et d'écrire dans les évènements sur souris déplacée : =EssaiMouseMove([txtEssai])

    Merci à vous tous pour vos conseils...


  9. #9
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut bonjour...
    je me permet de déranger j'ai un petit souci...
    j'aimerai récupérer le nom de l'image du curseur et l'afficher dans un label...
    toute fois je n'arrive pas a trouver de commande me permettant de trouver l'image du curseur...

    pour qu'elle raison bas en gros je veut juste savoir quand ma souris passe sur un lien et donc en gros savoir quand elle change d’aspect.
    est ce que c'est possible?

Discussions similaires

  1. [AC-2010] Récupérer le nom du controle survolé par la souris
    Par Jeannot45 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/04/2014, 07h51
  2. [Toutes versions] Afficher dans controltiptext d'une ListBox le texte survolé par la souris
    Par ESVBA dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/08/2010, 21h13
  3. [XL-2003] Listview : connaitre la ligne survolée par la souris
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/05/2010, 18h51
  4. Réponses: 3
    Dernier message: 13/12/2006, 14h03

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