Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boucle pour formater un état

3 réponses
Avatar
valere1966
Bonjour

J'ai un =E9tat bas=E9 sur une table qui contient 61 champs (tdate + texte1,=
texte2 etc...)
Chaque enregistrement ne contient que 5 valeurs.
Je souhaite que ces valeurs soient format=E9es en rouge pour faciliter la l=
isibilit=E9 de l'=E9tat.
J'ai =E9crit une boucle pour pouvoir mettre ces valeurs en rouge

Dim ctl As Control
Const Rouge As Long =3D 255
Const Noir As Long =3D 0

For enti =3D 1 To 61
Set ctl =3D Me("Texte" & enti)
If Not IsNull(ctl) And tDate =3D "26-1" Or tDate =3D ctl Then ct=
l.ForeColor =3D Rouge
=20
Ca fonctionne, sauf que les valeurs ne sont en rouge que pour l'enregistrem=
ent courant.Or je voudrais que toutes les valeurs des 5 champs concern=E9s =
soient en rouge, du d=E9but =E0 la fin de l'=E9tat, et uniquement dans les =
5 colonnes concern=E9es, etant donn=E9 que les colonnes changent en fonctio=
n de la date..
Je sais qu'il manque quelque chose dans ma boucle mais impossible d'y arriv=
er.
Quand je modifie le critere, tous les chiffres de mon etat se mettent en ro=
uge.
Quelqu'un aurait-il la solution ?

D'avance merci pour toute r=E9ponse.
=20
=20
Next enti

3 réponses

Avatar
db
Le 29/01/2013 07:36, a écrit :
Bonjour

J'ai un état basé sur une table qui contient 61 champs (tdate + texte1, texte2 etc...)
Chaque enregistrement ne contient que 5 valeurs.
Je souhaite que ces valeurs soient formatées en rouge pour faciliter la lisibilité de l'état.
J'ai écrit une boucle pour pouvoir mettre ces valeurs en rouge

Dim ctl As Control
Const Rouge As Long = 255
Const Noir As Long = 0

For enti = 1 To 61
Set ctl = Me("Texte" & enti)
If Not IsNull(ctl) And tDate = "26-1" Or tDate = ctl Then ctl.ForeColor = Rouge

Ca fonctionne, sauf que les valeurs ne sont en rouge que pour l'enregistrement courant.Or je voudrais que toutes les valeurs des 5 champs concernés soient en rouge, du début à la fin de l'état, et uniquement dans les 5 colonnes concernées, etant donné que les colonnes changent en fonction de la date..
Je sais qu'il manque quelque chose dans ma boucle mais impossible d'y arriver.
Quand je modifie le critere, tous les chiffres de mon etat se mettent en rouge.
Quelqu'un aurait-il la solution ?

D'avance merci pour toute réponse.


Next enti




Sans doute quelque chose comme :

If Not IsNull(ctl)
Then ctl.ForeColor = Rouge
Else ctl.ForeColor =Noir
End if

(Je m'interroge sur le test : tDate="26-1" or tDate=ctl ... Ou alors je
n'ai pas compris la dénomination des contrôles...)

db
Avatar
Gloops
a écrit, le 29/01/2013 07:36 :
Ca fonctionne, sauf que les valeurs ne sont en rouge que pour l'enregis trement courant.Or je voudrais que toutes les valeurs des 5 champs concer nés soient en rouge, du début à la fin de l'état, et uniquement d ans les 5 colonnes concernées, etant donné que les colonnes changent en fonction de la date..



Bonjour,

Au moins, tu as réussi à faire ce qui est difficile.
Maintenant, il ne te reste plus qu'à attaquer ce qui est facile :)

Laisse tomber le code, et exprime clairement ce que tu veux faire.
Après, ça deviendra tellement évident que tu viendras juste nous di re
comment tu as fait.

J'ai l'impression que tu n'utilises pas les bons événements.



--- news://freenews.netfront.net/ - complaints: ---
Avatar
valere1966
Le mardi 29 janvier 2013 07:36:14 UTC+1, a écrit :
Bonjour



J'ai un état basé sur une table qui contient 61 champs (tdate + texte 1, texte2 etc...)

Chaque enregistrement ne contient que 5 valeurs.

Je souhaite que ces valeurs soient formatées en rouge pour faciliter la lisibilité de l'état.

J'ai écrit une boucle pour pouvoir mettre ces valeurs en rouge



Dim ctl As Control

Const Rouge As Long = 255

Const Noir As Long = 0



For enti = 1 To 61

Set ctl = Me("Texte" & enti)

If Not IsNull(ctl) And tDate = "26-1" Or tDate = ctl Then ctl.ForeColor = Rouge



Ca fonctionne, sauf que les valeurs ne sont en rouge que pour l'enregistr ement courant.Or je voudrais que toutes les valeurs des 5 champs concerné s soient en rouge, du début à la fin de l'état, et uniquement dans le s 5 colonnes concernées, etant donné que les colonnes changent en fonct ion de la date..

Je sais qu'il manque quelque chose dans ma boucle mais impossible d'y arr iver.

Quand je modifie le critere, tous les chiffres de mon etat se mettent en rouge.

Quelqu'un aurait-il la solution ?



D'avance merci pour toute réponse.





Next enti





Bonjour

Merci pour votre aide.
En fait je veux :
- que la données de la dernière ligne de mon état soient formatées en rouge.
- que les mêmes données soient aussi formatées en rouge dans le reste de l'état, quelles que soient les lignes.

Mon code fonctionne à l'impression de l'état, mais l'aperçu ne m'affi che qu'une seule ligne avec les données en rouge (je précise tdate& pour sélectionner le dernier enregistrement de ma table, à défaut de savoir comment sélectionner automatiquement le dernier record dans une b oucle et de s'en servir comme critère).

Mon critère de sélection est les 5 champs non vides (sur les 61) du der nier enregistrement de la table, à afficher en rouge dans tous les autres enregistrements (qu'il n'y en ait qu'un ou deux ou trois ou quatre ou cinq quel que soit le record);

Pour l'heure, soit je n'ai qu'une ligne avec les cinq champs en rouge, soit tous les champs en rouge, ce que je ne veux pas puisque les records ne con tenant pas les 5 valeurs du dernier record doivent rester affichées en no ir.
Je ne voudrais afficher en rouge dans mon état, avant l'impression, que l es valeurs du dernier enregistrement apparaissant dans tous les autres reco rds de la table.
J'espère avoir été plus clair ...
Merci en tous cas à tous pour votre aide précieuse.