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

IHM Discussion :

Evènement sur plusieurs contrôles [Toutes versions]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 33
    Points
    33
    Par défaut Evènement sur plusieurs contrôles
    Bonjour tout le monde,

    Alors je pense que ma question a déjà été traité quelque part sur le site mais je n'arrive malheureusement pas à trouver, je vous prie de m'excuser par avance.


    Est-il possible d'affecter un évènement (par exemple Sur Click) à plusieurs contrôle d'un formulaire sans pour autant déclarer un par un les évènements ?

    J'arrive par exemple à affecter une valeur à chaque controls à l'aide d'un For Each mais j'aimerais que sur le clic un msgbox apparaisse, comment procéder ? Est-ce possible ?

    J'aimerais éviter la solution de déclarer une fonction click pour chaque control ^^


    Merci d'avance,
    Cordialement.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    Bonjour,

    Avec un for each tu peux également déclarer une fonction sur événement Sur-click de chaque controle.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each ctrl as me.controls
         if .... then
            ctrl.onclik = "=MafonctionMsg()"
         endif
    Next
    Tu peux également passer par une classe mais pour un seul formulaire et une seule procédure c'est une perte de temps à mon avis.

    Regarde le tuto sur la classe MELA c'est ce qui se pratique mais avec une action différente suivant les événéments et les controles.

    Cordialement,

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Merci beaucoup pour ta réponse,


    Je me sens un peu idiot car en fait c'est très simple... et ca faisait réellement un moment que je bloquais dessus!
    Quand on a la tête dans le code on ne voit pas toujours les choses simples ^^


    Merci encore et merci pour le conseil du tuto MELA

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Je me permet de remonter le topic car j'ai une question,
    Peut-on passer un argument à l'évènement ?

    Par exemple sur le clique d'un contrôle, j'aimerais pouvoir envoyer à la fonction le nom du contrôle... je ne trouve pas la syntaxe.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Me.ctl.OnGotFocus = "=test(" & ctl.Name& ")"
     
    Private Function test(ByVal ctlName As String)
    MsgBox ctlName
    End Function
    Mais ca ne marche pas :/

    Merci d'avance !

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour Fabious,

    Tu as juste oublié des guillemets Solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.ctl.OnGotFocus = "=test('" & ctl.Name& "')"
     
    Private Function test(ByVal ctlName As String)
    MsgBox ctlName
    End Function
    le paramètre ctlName de ta fonction test(ctlName) étant une string, il doit être entre guillements.comme la propriété OnGotFocus est aussi une string qui se trouve déjà entre guillemets doubles, il faut mettre des guillemets simples ou doubler les guillemets doubles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.ctl.OnGotFocus = "=test(""" & ctl.Name& """)"
     
    Private Function test(ByVal ctlName As String)
    MsgBox ctlName
    End Function
    devrait donc fonctionner aussi

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Ah merci beaucoup !

    Ca me rassure de savoir que je n'étais pas très loin de la solution ^^

    Encore merci

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

Discussions similaires

  1. [AC-2010] Evènement sur plusieurs contrôles en même temps
    Par illight dans le forum IHM
    Réponses: 4
    Dernier message: 25/09/2014, 12h13
  2. appliquer la même procédure évènementielle sur plusieurs contrôles
    Par homerlehamster dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 31/08/2010, 09h48
  3. [AC-2007] Evènement commun à plusieurs contrôles
    Par nico_on_Web dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/02/2010, 13h49
  4. Evènements sur plusieurs Timers
    Par sttcom dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/10/2009, 02h06
  5. Réponses: 1
    Dernier message: 22/12/2005, 17h33

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