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 la couleur de fond à réception du focus [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 67

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut Changer la couleur de fond à réception du focus
    Bonjour,
    Dans un formulaire Excel, j'aimerais savoir s'il est possible de changer la couleur de fond du contrôle qui reçoit le focus (quel que soit ce contrôle) afin que l'utilisateur se repère plus facilement, surtout s'il utilise le clavier. J'ai une centaine de contrôles dans mon formulaire et j'aimerais éviter de mettre un évènement 'sur réception focus' et un évènement 'sur perte focus' pour chaque contrôle.
    Merci d'avance de vos suggestions.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Je pense que cela pourrait te convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.ActiveControl.BackColor = 100
    ActiveControl représente le contrôle ayant le focus comme tu le souhaites. J'lui ai mis une couleur au pif.

    Pour ce que tu souhaites faire je pense à quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Ctrl As Control
     
    For Each Ctrl In UserForm1.Controls
        If Ctrl.Name <> ActiveControl.Name Then
            Ctrl.BackColor = 100
        Else
            ActiveControl.BackColor = 200
        End If
    Next
    Tu parcours tous les contrôles de ton formulaire. Si c'est le contrôle ayant le focus la couleur est 200 sinon la couleur est 100. Comme cela, dès que tu change de focus et que tu rappelles la sub, l'ancien contrôle actif va bien repasser à 100 en couleur et le nouveau passera alors à 200.

    A toi d'adapter.

    Bonne chance pour la suite.

    PS : c'est testé, ça fonctionne. Les couleurs sont un tout petit peu exotiques dans cet exemple A toi de trouver les bonnes couleurs Il faut aussi appeler la Sub à chaque mouvement mais c'est assez simple !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 67

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    Je suis pas sûr d'avoir bien compris où il faut mettre ce code, mais je vais faire des essais dès que j'ai un peu de temps. Un grand merci en tous cas, car même si je ne sais pas trop comment l'utiliser, ta réponse colle pile poil à ma préoccupation.

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

Discussions similaires

  1. Changer la couleur de fond des inputs de la page au focus ?
    Par Zebulon777 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 06/01/2015, 07h17
  2. Réponses: 10
    Dernier message: 04/04/2005, 21h52
  3. Changer la couleur de fond d'un champ "text"
    Par nic211 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/02/2005, 13h50
  4. [POO] Changer la couleur de fond d'un tableau
    Par Netoman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2004, 20h12
  5. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37

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