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 :

Affecter une même procédure VBA à plusieurs objets du formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 99
    Points
    99
    Par défaut Affecter une même procédure VBA à plusieurs objets du formulaire
    salut à tous
    je recherche désespérément un article sur dvp traitant de l'application d'un code unique sur un ensemble de contrôles pour eviter de saisir le même code pour chaque controle
    merci de bien vouloir me passer le lien

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 369
    Points : 19 771
    Points
    19 771
    Billets dans le blog
    65
    Par défaut
    Salut,

    Ce tutoriel ne te convient pas ?

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

    Le titre de ton message a à mon avis peut de rapport avec ta discussion

    Peux-tu détailler ce que tu souhaites faire et quel code tu veux affecter à tous ces contrôles.

    Philippe

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 99
    Points
    99
    Par défaut
    salut à tous
    j'ai un formulaire dans lequel j'ai plusieurs étiquettes qui doivent avoir le même comportement. Par exemple au survol de la souris elle prennent une certaine couleur et le curseur prend la forme de la main sur un lien. Actuellement je suis obligé de mettre autant de fois le code qu'il y a d'étiquettes. Dans le topic que je recherche il était question d'écrire une procédure qui gère l'ensemble des controls. Je ne me souviens plus de l'énoncé du tutoriel, c'est la galère
    merci votre pour attention

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Dans ce cas, tu peux essayer en donnant à tes contrôles des noms sous forme de suites logiques du style :
    Cmd_1 Cmd_2 Cmd_3 ....
    Lbl_1 Lbl_2 Lbl_3 ....
    Txt_1 Txt_2 Txt_3 ...
    ....
    Puis dans la fenêtre propriété de ton contrôle sur l'évènement "sur souris déplacée" de ton Lbl_1, tu mets par exemple =Ma_Fonction(1)
    Après dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function Ma_Fonction(i As Integer)
        Dim ctl As control
        Dim Label_Name As String
        Set ctl = MyForm.Controls("Lbl_" & i)
        Label_Name = ctl.Name
        MyForm(Label_Name).ForeColor = vbRed 'par exemple
        ....
    Set ctl = Nothing
    End Function
    C'est une solution parmi d'autres, qu'il faut bien sûr adapter et compléter selon tes besoins.

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Tu trouveras ce type d'application de fonction personnelle dans le tutoriel sur la gestion de planning
    Cette procédure a été utilisée pour gérer une même procédure sur plusieurs boutons

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 369
    Points : 19 771
    Points
    19 771
    Billets dans le blog
    65
    Par défaut
    Re,

    Maintenant que tu as entièrement changé le contenu du message d'origine, forcément ma réponse n'a pas trop de rapport

    Sinon,
    pour reprendre les 2 exemples proposés par Gayot et Jeannot, une fois que tu as défini ta fonction à mettre sur les évènements de tes contrôles, tu peux mettre ces fonctions sur les évènements par exemple à l'ouverture de ton formulaire...

    Tu aurais dans l'exemple donné par Gayot pour 300 étiquettes (Lbl_1,...Lbl_300) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Open(Cancel As Integer)
    Dim i As Integer
    For i=1 to 300
          Me("Lbl_" & i).OnMouseMove="=Ma_Fonction(" & i &")"
          ' Ou Me.Controls("Lbl_" & i).OnMouseMove="=Ma_Fonction(" & i &")"
    Next I
     
    End Sub
    A+

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 99
    Points
    99
    Par défaut
    Salut à tous
    Merci pour votre aide je vais tester vos soluces et vous faire le retour
    A+

  9. #9
    Membre habitué Avatar de anouar_chaieb
    Inscrit en
    Mai 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 279
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Actuellement je suis obligé de mettre autant de fois le code qu'il y a d'étiquettes
    c'est juste on fait appel à la fonction en ecrivant uniquement le nom sur l'évènement

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 99
    Points
    99
    Par défaut Résolu
    Ok ça marche bien
    J'ai combiné les soluces de Gayot et User. C'est pile ce dont j'avais besoin. On n'a pas besoin d'ecrire un quelconque code sur l'événement "souris déplacée" de chaque control. Grand merci


    EDIT

    voici comment j'ai exploité vos astuces
    mes etiquettes sont Etq_1, Etq_2... et ne sont pas initialement transparentes
    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
    17
    18
    19
    20
    21
    22
    23
    24
     
    Private Sub Form_Open(Cancel As Integer)
     
    Dim i As Integer
    Dim Ctl As control
    i = 0
    For Each Ctl In Me.Controls  'Puisque le nombre d'étiq. peut changer
        If Ctl.Name Like "Etq_*" Then
            i = i + 1
            Me("Etq_" & i).OnMouseMove = "=ActiverCtl(" & i & ")"
        End If
    Next Ctl
    'Set Ctl = Nothing
     
    End Sub
     
    Function ActiverCtl(CtlID As Integer)
        Dim Ctl As control
        Dim Label_Name As String
        Set Ctl = Me.Controls("Etq_" & CtlID)
        Label_Name = Ctl.Name
        Me(Label_Name).BackColor = RGB(245, 220, 175) 
        Set Ctl = Nothing
    End Function
    Merci infiniment

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

Discussions similaires

  1. [AC-2007] Affecter une même procédure à plusieurs controles d'un formulaire
    Par Jeannot45 dans le forum VBA Access
    Réponses: 8
    Dernier message: 29/06/2013, 09h14
  2. Plusieurs Champs d'une même table dans plusieurs textebox
    Par cyberbiker dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/09/2006, 11h32
  3. Réponses: 6
    Dernier message: 11/09/2006, 12h58
  4. [VBA Excel] Une même macro pour plusieurs CheckBox
    Par Choupett' dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 16/06/2006, 13h54
  5. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40

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