Surbrillance d'une étiquette de case à cocher

lmc71

XLDnaute Occasionnel
Bonjour le Forum,
Je voudrais savoir s'il est possible de mettre en surbrillance l'étiquette d'une case à cocher dans un formulaire lorsque cette dernière devient active. Actuellement lorsque la case à cocher devient active, seul un filet en pointillé entour l'étiquette de cette case.
Je voudrais que cette étiquette devienne plus voyante.
Est-ce possible ? si oui comment.
Car mes recherches sont restées vaines.
Merci d'avance
 

Modeste

XLDnaute Barbatruc
Re : Surbrillance d'une étiquette de case à cocher

Bonjour lmc71,

Avec une zone de texte, on aurait pu "jouer" sur la Mise en Forme Conditionnelle ... pour l'étiquette associée à une case à cocher, je crains (sans certitude absolue) qu'on ne doive passer par un bout de code!? Avec un contrôle "case à cocher" qui se nommerait "Cocher19", dont l'étiquette serait nommée "Étiquette20", ceci semble fonctionner chez moi:
Code:
Private Sub Cocher19_Click()
Set ctrl = Me.Controls("Étiquette20")
If Controls("Cocher19") Then
   ctrl.BackStyle = 1
   ctrl.BackColor = 2366701
Else
   ctrl.BackStyle = 0
End If
End Sub

... Le tout si j'ai bien compris!?
 

lmc71

XLDnaute Occasionnel
Re : Surbrillance d'une étiquette de case à cocher

Bonjour Modeste
Toujours fidèle au poste et je t'en félicite.
Effectivement tu as tout compris. J'utilise déjà MFC et je maitrise assez bien.
Comme je suis nul en VBA. Je vais essayer d'utiliser ton bout de code.
Donc si je comprends bien je place ce bout de code dans la partie : évènement - Après MAJ ou sur changement du champs précédant la case à cocher à mettre en surbrillance.
Si ce n'est le cas comment dois-je procéder .

Sinon une question : Private Sub Cocher19_Click() : Je vois que le nom du code comprend _Click, est-ce que cela veut dire qu'il faille agir sur la souris pour activer le code.

Merci de ta réponse rapide
 

lmc71

XLDnaute Occasionnel
Re : Surbrillance d'une étiquette de case à cocher

Re
J'ai essayé tout bout de code mais je n'ai pas su avoir gain de cause. Donc j'ai fais un petit fichier et si tu peux m'expliquer dessus comment tu pratiques.
Dans ce fichier voici mon désidérata :
Après MAJ du champ Montant du formulaire Depense, je souhaiterais que l'étiquette Valid soit mise en couleur
Je t'en remercie d'avance.

Où pourrais-je trouver un tableau pour les couleurs : ctrl.BackColor = 2366701
Cordialement
 

Pièces jointes

  • Base de données5.zip
    41.2 KB · Affichages: 66
  • Base de données5.zip
    41.2 KB · Affichages: 68

Modeste

XLDnaute Barbatruc
Re : Surbrillance d'une étiquette de case à cocher

Bonsoir,

lmc71 à dit:
Sinon une question : Private Sub Cocher19_Click() : Je vois que le nom du code comprend _Click, est-ce que cela veut dire qu'il faille agir sur la souris pour activer le code
Ah ben j'avais bien dit "si j'ai bien compris" ... et donc oui, c'est quand on coche la case que l'étiquette se colore ... ce n'est pas ce que tu voulais?

... Et c'est maintenant que je lis:
lmc71 à dit:
Après MAJ du champ Montant du formulaire Depense, je souhaiterais que l'étiquette Valid soit mise en couleur
Dès lors, ce que je propose, c'est:

[en mode création du formulaire]
- clic droit sur la case à cocher (Valid)
- Créer code événement
- Générateur de code
- coller les lignes suivantes
Code:
Private Sub Valid_GotFocus()
Set ctrl = Me.Controls("Étiquette11")
With Me.Controls("Valid")
   ctrl.BackStyle = 1
   ctrl.BackColor = 2366701
End With
End Sub

Private Sub Valid_LostFocus()
Set ctrl = Me.Controls("Étiquette11")
With Me.Controls("Valid")
   ctrl.BackStyle = 0
End With
End Sub
C'est donc quand le contrôle "case à cocher" reçoit le focus que le "Style de fond" de l'étiquette passe en "Standard" et que la couleur de fond passe au rouge.
Quand le même contrôle perd le focus, la propriété Style de fond revient à transparent.

Dis-nous si ça coince ou si j'ai encore compris autre chose. Je peux essayer de joindre ton fichier modifié, mais ici, je suis en Access 2013.
 

lmc71

XLDnaute Occasionnel
Re : Surbrillance d'une étiquette de case à cocher

Re
J'ai essayé ton code joint, mais ça coince avec : variable non définie sur -- Set ctrl = Me.Controls("Étiquette11") dans la 1ère partie Private Sub Valid_GotFocus()
le nom de l'étiquette est bien Etiquette11 (avec l'accent sur le E)
Je pense que cela se produira également avec la 2ème partie, lorsqu'on perd le focus.

Je n'ai pas vu la fonction Dim Ctrl As machin chose. Peut-être est-ce normal. C'est à force de lire des codes que j'avais remarqué ce : Dim pour une déclaration. Mais je ne sais pas comment remédier.
Je te joins un fichier doc avec le code d'erreur pour une meilleur compréhension.
C'est exactement ce que je souhaite. Tu as tout bien compris.
Merci
Cordialement
 

Pièces jointes

  • Erreur.docx
    209.8 KB · Affichages: 67
  • Erreur.docx
    209.8 KB · Affichages: 64

Modeste

XLDnaute Barbatruc
Re : Surbrillance d'une étiquette de case à cocher

Bonjour,

Dans ton code, la présence de "Option Explicit" oblige à déclarer chaque variable de manière ... explicite.

Tu dois donc écrire un Dim ctrl As Control, soit dans chaque procédure où cette variable sera utilisée, soit tout en haut, dans les déclarations (de manière à ne le faire qu'une fois).

Je joins le fichier au cas où (ici, j'ai du 2010) ... j'ai supprimé un bout de code ou l'autre qui n'étaient plus utiles.
 

Pièces jointes

  • Base de données5.zip
    63.4 KB · Affichages: 58
  • Base de données5.zip
    63.4 KB · Affichages: 70

lmc71

XLDnaute Occasionnel
Re : Surbrillance d'une étiquette de case à cocher

Bonjour Modeste,
Je te remercie pour ta rapidité et tes explications.
Tout fonctionne pour ce fichier.
D'où ma question : Si je veux utiliser ce code pour un autre champ dans un autre formulaire, il me suffit de placer ce bout de code dans le champ voulu en changeant le nom Etiquette et Champ soit(Etiquette11 et Valid)
Est-ce correct ?

2ème question : Où pourrais-je trouver le tableau des couleurs pour un autre choix que le rouge.
merci
Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Surbrillance d'une étiquette de case à cocher

Bonsoir lmc71 et le reste du forum :)

lmc71 à dit:
Si je veux utiliser ce code pour un autre champ dans un autre formulaire, il me suffit de placer ce bout de code dans le champ voulu en changeant le nom Etiquette et Champ soit(Etiquette11 et Valid)
Est-ce correct ?
C'est en tout cas ce que je ferais (... peut-être en suivant les manips évoquées dans mon message #5: dans un de tes fichiers, le code était dans un module, plutôt que dans la fenêtre de code du formulaire)

lmc71 à dit:
2ème question : Où pourrais-je trouver le tableau des couleurs pour un autre choix que le rouge
Il me semble avoir déjà vu ici des classeurs où les couleurs principales étaient listées avec -pour l'un ou l'autre- la "traduction" en décimal, hexadécimal et/ou RGB.
Pour ma part, j'aime bien un petit utilitaire (freeware) nommé colorpick, téléchargeable chez Scalpsoft
 

lmc71

XLDnaute Occasionnel
Re : Surbrillance d'une étiquette de case à cocher

Re
J'ai réussi à utiliser ce code pour plusieurs cases à cocher dans le même formulaire. Tout fonctionne.
Franchement je dois te dire un GRAND MERCI.
Pour la couleur je vais faire les recherches, voir comment utiliser colorpick.
Encore merci
à la prochaine.
ce forum est génial et vous êtes réellement plus que des Pro.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 336
Membres
111 104
dernier inscrit
JEMADA