Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2011, 14h40   #1
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 99
Points : 9
Points : 9
Par défaut Changer la couleur de la police en VBA

Bonjour,

Sur un évènement impression (du détail) je souhaiterai modifier en fonction de ce qui est écris la couleur de la police.
J'ai crée un planning horaire ou il figure dans les cases: "S", "M" ou "N" en fonction des jours mais également d'autres formes d'horaires (improductivité) comme "C", "A"...

J'ai déjà réussi a modifier la couleur de fond en VBA avec la fonction:
Code :
1
2
If (Me![Lundi] Like "S") Then
Me![Lundi].BackColor = JAUNE
J'arrive donc a utiliser la fonction backColor.

J'aimerai maintenant faire de même avec une fonction "FrontColor" avec comme exemple:
Code :
1
2
If (Me![Lundi] Like "S") Then
Me![Lundi].FrontColor = BLEU
Connaissez vous la syntaxe à adopter?
Merci
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h11   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,
Ne serait-ce pas FontColor pour la police?
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 16h08   #3
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 99
Points : 9
Points : 9
Oui j'ai vu que certain utilisait Font.colorIndex
Mais ds mon cas ca ne marche pas :/
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 19h36   #4
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 103
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 103
Points : 8 728
Points : 8 728
Bonjour,

Comme le signal rjamin

c'est FontColor et non FrontColor

Code :
1
2
If (Me![Lundi] Like "S") Then
Me![Lundi].FontColor = BLEU
Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 12h00   #5
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 99
Points : 9
Points : 9
Arff je viens d'essayer ton code mais ça m'affiche un bug sur la ligne
Code :
Me![Lundi].FontColor = BLEU
(Sachant que j'ai un module qui définit les différentes couleurs). Même en remplaçant "BLEU" par le nombre qui le représente j'ai la même erreur

Tu sais d'ou ça peut venir?

J'ai un truc similaire qui marche très pour le backColor donc je comprends pas :/
Cest le code suivant:
Code :
1
2
3
4
If (Me![Lundi] Like "*C/A*") Then
Me![Lundi].BackColor = BLEU
ElseIf (Me![Lundi] Like "ALO*") Then
Me![Lundi].BackColor = MARRON

Pour le FontColor j'ai tapé mot pour mot cela et ça ne marche pas :/
Code :
1
2
3
If (Me![Lundi] Like "S") Then
Me![Lundi].FontColor = BLEU
End If
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 15h14   #6
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,
Dans l'aide d'Excel VBA on trouve en cherchant :

Citation:
Référence du développeur Excel
Font.Color, propriété
Cette propriété renvoie ou définit la couleur principale de l'objet, comme l'indique la section des remarques dans le tableau suivant. Utilisez la fonction RVB pour créer une valeur de couleur. Type de données Variant en lecture-écriture.
Syntaxe

expression.Color

expression Expression qui renvoie un objet Font.

Remarques


Objet Couleur
Border Couleur de la bordure.
Borders Couleur des 4 bordures d'une plage. Si elles ne sont pas toutes de la même couleur, la propriété Color renvoie 0 (zéro).
Font Couleur de la police de caractères.
Interior Couleur ombrée de la cellule ou couleur de remplissage de l'objet dessin.
Tab Couleur de l'onglet.
PS: C'est Font.Color la propriété j'avais oublié le point dans ma première intervention, désolé.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 15h22   #7
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,
Décidément je suis distrait, je vois maintenant que c'est ACCESS et non Excel

Donc c'est TextBox.ForeColor la propriété. Mille excuses. Dans l'aide de VBA Access on trouve

Citation:
Référence du développeur Access
TextBox.ForeColor, propriété
Afficher tout
Masquer tout
La propriété ForeColor permet de spécifier la couleur du texte d’un contrôle (contrôle : objet d’interface utilisateur graphique, comme une zone de texte, une case à cocher, une barre de défilement ou un bouton de commande, qui permet aux utilisateurs de contrôler le programme. Vous pouvez utiliser des contrôles pour afficher des données ou des choix, effectuer une action ou rendre l’interface utilisateur plus lisible.). Type de données Long en lecture/écriture.
Syntaxe

expression.ForeColor

expression Variable qui représente un objet TextBox.

Remarques


Vous pouvez utiliser cette propriété pour les contrôles des formulaires (formulaire : objet de base de données Access dans lequel vous placez des contrôles qui permettent d’exécuter des actions ou d’entrer, d’afficher et de modifier des données dans des champs.) ou états (état : objet de base de données Access que vous pouvez imprimer, qui contient des informations mises en forme et organisées en fonction de vos spécifications. Des synthèses de ventes, des listes de numéros de téléphone et des étiquettes de publipostage sont des exemples d’états.) afin d’en faciliter la lecture ou de leur conférer une signification particulière. Vous pouvez, par exemple, changer la couleur du texte du contrôle UnitsInStock (pièces en stock) lorsque sa valeur tombe en dessous du seuil de réapprovisionnement.

Vous pouvez également l’utiliser pour créer des effets spéciaux lorsque vous imprimez sur une imprimante couleur. Lorsqu’elle est utilisée dans un état, cette propriété spécifie la couleur d’impression et de dessin des méthodes Print, Line et Circle.

La propriété ForeColor contient une expression numérique (expression numérique : expression dont le résultat après évaluation est un nombre. L’expression peut être une combinaison quelconque de variables, de constantes, de fonctions et d’opérateurs.) qui représente la valeur de la couleur du texte dans le contrôle.

Vous pouvez utiliser le Générateur de couleur pour définir cette propriété en cliquant sur le bouton Générer situé à droite de la zone de propriété dans la feuille des propriétés (feuille des propriétés : volet qui permet d’afficher ou de modifier les propriétés de différents objets tels que des tables, des requêtes, des champs, des formulaires, des états, des pages d’accès aux données et des contrôles.). Grâce au Générateur de couleur, vous pouvez définir des couleurs personnalisées pour le texte des contrôles.

Vous pouvez définir la valeur par défaut de cette propriété à l’aide du style de contrôle par défaut (style de contrôle par défaut : paramètre de propriété par défaut d’un type de contrôle. Vous personnalisez un type de contrôle avant de créer deux contrôles similaires, ou plus, pour éviter de personnaliser chaque contrôle individuellement.) d’un contrôle ou de la propriété DefaultControl dans Visual Basic.

Dans le cas d'états, vous pouvez définir la propriété Circle uniquement à l'aide d'une macro ou d'une procédure événementielle Visual Basic spécifiée dans le paramètre de la propriété d'événement OnPrint d'une section.


Exemple


L'exemple suivant utilise la fonction RGB pour définir les propriétés BorderColor, BackColor et ForeColor en fonction de la valeur de la zone de texte . Vous pouvez également utiliser la fonction QBColor pour définir ces propriétés. Si vous placez le code suivant dans l'événement Form_Current( ), les caractéristiques du contrôle s'affichent dès que l'utilisateur ouvre un formulaire ou passe à un nouvel enregistrement.

Visual Basic pour Applications
Sub Form_Current()
Dim curAmntDue As Currency, lngBlack As Long
Dim lngRed As Long, lngYellow As Long, lngWhite As Long

If Not IsNull(Me!txtPastDue.Value) Then
curAmntDue = Me!txtPastDue.Value
Else
Exit Sub
End If
lngRed = RGB(255, 0, 0)
lngBlack = RGB(0, 0, 0)
lngYellow = RGB(255, 255, 0)
lngWhite = RGB(255, 255, 255)
If curAmntDue > 100 Then
Me!txtPastDue.BorderColor = lngRed
Me!txtPastDue.ForeColor = lngRed
Me!txtPastDue.BackColor = lngYellow
Else
Me!txtPastDue.BorderColor = lngBlack
Me!txtPastDue.ForeColor = lngBlack
Me!txtPastDue.BackColor = lngWhite
End If
End Sub
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 09h29   #8
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 99
Points : 9
Points : 9
Merci c'est parfait
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h52.


 
 
 
 
Partenaires

Hébergement Web