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 :

changer de couleur au survol


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut changer de couleur au survol
    boujou tout le monde

    jai un formulaire avec 175 label

    Label1 à Label175

    est il possible par le code de changer la couleur du fond du Label au survol de la souris

    Genre si je passe sur le label3 le fond blanc passe en rose et revien blanc quand la souris n'est plus dessus

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    les evenements qui vont t'interesser sont
    MouseMove voire GotFocus
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Avec 175 Labels, je pense que l'utilisation d'un module de classe est inévitable afin d'avoir un code assez court.
    A mettre dans le module du formulaire (il doit s'appeler UserForm1, sinon, adapter) :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Dim Lbl() As New ClsLbl 'tableau de Labels
    Public LblActif As MSForms.Label 'stocke le label actif
     
    Private Sub UserForm_Initialize()
     
        Dim Ctrl As Control
        Dim I As Integer
     
        'crée le groupe de Labels
        For Each Ctrl In Me.Controls
     
            If TypeName(Ctrl) = "Label" Then
     
                I = I + 1
                ReDim Preserve Lbl(1 To I)
                Set Lbl(I).GroupeLbl = Ctrl
     
            End If
     
        Next Ctrl
     
        Set Ctrl = Nothing
     
    End Sub
     
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     
        'permet de remettre la couleur blanche du dernier
        'Label survolé
        On Error Resume Next
        LblActif.BackColor = &HFFFFFF
     
    End Sub
    A mettre dans le module de classe et le nommer "ClsLbl" :
    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
    25
    26
    27
    28
    29
    30
     
    Public WithEvents GroupeLbl As MSForms.Label
     
    Private Sub GroupeLbl_MouseMove(ByVal Button As Integer, _
                                    ByVal Shift As Integer, _
                                    ByVal X As Single, _
                                    ByVal Y As Single)
     
        Dim Ctrl As Control
     
        'tous les Labels en couleur blanche
        For Each Ctrl In UserForm1.Controls
     
            If TypeName(Ctrl) = "Label" Then
     
                Ctrl.BackColor = &HFFFFFF
     
            End If
     
        Next Ctrl
     
        'Label survolé en rose
        GroupeLbl.BackColor = &HFF80FF
     
        'mémorise le dernier coloré en rose
        Set UserForm1.LblActif = GroupeLbl
     
        Set Ctrl = Nothing
     
    End Sub
    Au passage de la souris, le Label survolé se colore en rose alors que les autres reprennent leur couleur blanche.
    L'évènement "UserForm_MouseMove" de la Form permet de remettre le dernier Label en blanc quand tu quittes la zone des Labels.

    Hervé.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut je doit pas bien proceder
    je comprend pas dans le module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public WithEvents GroupeLbl As MSForms.Label
    est ecrit en rouge

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut ah erreur de ma part
    Autant pour moi c'est bon ca marche merci

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

Discussions similaires

  1. Changer la couleur au survol d'un <li>
    Par allayahassine dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 18/02/2015, 09h30
  2. changer de couleur sur survol le texte d'une liste
    Par laurentSc dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/09/2013, 18h29
  3. Changer de couleur un tr en survol
    Par bubulemaster dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/02/2008, 08h49
  4. Réponses: 2
    Dernier message: 21/10/2006, 20h58
  5. Changer la couleur d une ligne de tableau au survol
    Par logica dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/07/2005, 11h57

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