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 26/05/2011, 11h36   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 10
Points : 10
Par défaut Coloration lignes formulaire continu en fonction d'un champ

Bonjour à tous!

Après nombreuses recherches, aujourd'hui n'est pas mon ami ^^

En effet, j'ai trouvé des choses qui se rapproche de ce que je cherche mais rien de colle.

Je vous explique, je voudrais mettre les lignes de mon formulaire continu de différentes couleurs en fonction de la valeur d'un des contrôles de la ligne.

Mon formulaire représente une liste de contrats d'assistance pour lesquels j'affiche :
- le nom de la société qui a souscrit le contrat
- le numéro du contrat
- la date de souscription
- la date d'échéance
- plus quelques autres infos

Ce que je voudrais c'est que les contrats dont la date d'échéance :
- est dépassée depuis plus de 3 mois soient en rouge
- est dépassée de moins de 3 mois en orange
- sera atteint à la fin du mois suivant (le mois en cours) en jaune
- va plus loin en blanc

Pour faire cela, j'ai essayé différente chose mais je n'arrive pas au résultat voulu.

J'ai trouvé un tuto qui montrait bien comment changer la couleur ligne par ligne mais c'est avec une liste déroulante (donc pas automatique avec la date).

J'ai essayé la mise en forme conditionnelle sur tous les contrôles avec 3 conditions (mais j'ai du mal avec les expressions surtout au niveau de différence de date).

J'ai essayé de mettre un controle en fond de la longueur et hauteur de la ligne que j'ai fait changer de couleur en vba , ces trucs fonctionnés à moitié (mais peut-être par ma faute) .
J'ai réussi à bien faire correspondre les couleurs, mais toutes les lignes prennaient la couleur de la dernière date.

Après j'ai un doute sur l'endroit où faire l'appel du code
Code :
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
Dim moisEch
Dim anEch
Dim moisDate
Dim anDate
 
If Not IsNull(Me.Date_Echeance) Then
 
    moisEch = Month(Me.Date_Echeance)
    anEch = Year(Me.Date_Echeance)
    moisDate = Month(Date)
    anDate = Year(Date)
    'si le contrat est termine depuis plus de 3 mois
    If (DateDiff("m", Date, Me.Date_Echeance) < -3) Then
        Me.LigneBckgrd.BackColor = 255 'rouge
    'sinon
    Else
        's'il est termine
        If Me.Date_Echeance < Date Then
            Me.LigneBckgrd.BackColor = 52479 'orange
        'ou
        Else
            'qu'il se termine dans les 2 mois
            If moisEch <= moisDate + 2 And anEch = anDate Then
                Me.LigneBckgrd.BackColor = 10092543 'jaune
            'sinon (toujours valide)
            Else
                Me.LigneBckgrd.BackColor = 16777215 'blanc
            End If
        End If
    End If
Else
    Me.LigneBckgrd.BackColor = 16777215 'blanc
End If
Après j'ai pensé, peut-être utiliser l'objet recordset du formulaire mais là je sais pas trop comment faire.

Donc voilà si vous avez déjà essayé de faire quelque chose de similaire ou que vous ayez une idée pour m'aider je suis preneur.

Merci d'avance pour vos réponses.
Asyoshi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 03h47   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 616
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 616
Points : 30 961
Points : 30 961
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

La MFC sera le plus simple dans ton cas.

Tu nous dis que tu as essayé, peux-tu mettre les expressions que tu as testé ?

As-tu lu ce tuto : La mise en forme conditionnelle sous Access

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 09h40   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 10
Points : 10
J'ai déjà regardé ce tuto, oui. Ainsi que cette discussion (c'est d'ailleurs d'ici que j'ai été voir le tuto)

Je viens de réessayer la mfc mais access me dit que mon expression est incorrecte mais je ne vois pas quel est le problème

Edit:
Pour le rouge:
datediff("m",Date(),[Date Fin])<=-3
DiffDate("m";Date();[Date fin])<=-3

Pour le orange:
datediff("j",Date(),[Date Fin])<=0
DiffDate("m";Date();[Date fin])<=0

Pour le jaune:
datediff("m",[Date Fin],Date())<=2
DiffDate("m";Date();[Date fin])<=2

et là ça a l'air de vouloir marcher, je vous tiens au courant dès que ça sera complétement opérationnel, du coup je mettrais "Résolu" quand ça sera certain
Asyoshi 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 16h43.


 
 
 
 
Partenaires

Hébergement Web