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 09/08/2011, 11h38   #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 Couleur sous condition d'un Etat à partir d'une requête analyse croisée

Bonjour à tous et à toutes,

Voilà, j'ai un petit problème car je chercher à utiliser un code couleur sous certaines conditions mais ça ne marche pas.

J'ai crée un état sous forme de planning dans lequel j'aimerai afficher des couleurs. Cet état provient d'une requête analyse croisée dans laquelle j'ai:

comme entete de ligne: "Année", "Semaine", "Noms", "Sigles" et "DernierDeHoraire"
comme entete de colonne: "Jour" (il aparait donc Lu, Ma, Me, ..., Di)
comme valeur: "Horaire1"

Le planning est étalé sur 5 semaines.

J'aimerai afficher une couleur grisée dans les cases vides pour les "Noms" dont le "DernierDeHoraire" est 7-320 et dont le "Sigle" est TECH et afficher une couleur blanche pour les même conditions mais dont le "DernierDeHoraire" est A-320.

Le problème dans mon code c'est qu'il colorie les cases uniquement en fonction de la première semaine.

Si par exemple, je choisi d'afficher les semaines 40,41,42,43 et 44 et que la personne est "7-320" alors Access coloriera toutes les autres cases d'une même ligne même si dans la semaine 42 la même personne est "A-320"

Voici mon 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
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
Dim S1 As Variant
Dim S2 As Variant
Dim S As Variant
 
S1 = 40 
S2 = 44
 
For S = S1 To S2
 
If (Me![Semaine] Like S) And (Me![DernierDeHoraire1] Like "7*") And IsNull(Me![A Lu] = True) And (Me![Cigles] Like "*T*") Then
Me![A Lu].BackColor = 13685711
ElseIf (Me![DernierDeHoraire1] Like "A*") And IsNull(Me![A Lu] = True) And (Me![Cigles] Like "*T*") Then
Me![A Lu].BackColor = 16777215
End If
 
If (Me![Semaine] Like S) And (Me![DernierDeHoraire1] Like "7*") And IsNull(Me![B Ma] = True) And (Me![Cigles] Like "*T*")  Then
Me![B Ma].BackColor = 13685711
ElseIf (Me![DernierDeHoraire1] Like "A*") And IsNull(Me![B Ma] = True) And (Me![Cigles] Like "*T*") Then
Me![B Ma].BackColor = 16777215
End If
.
.
.
.
 
Next S
 
End Sub
Quelqu'un a t-il une solution?
Merci
Will
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 17h21   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

Cela ne va pas résoudre ton problème, mais il me semble qu'il te faut déjà remplacer :

Code :
IsNull(Me![A Lu] = True)
par

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 08h47   #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
Ca n'a entraîné aucun changement :s
Tu as une idée pour mon problème ?
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h22   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

Pourquoi tu boucles de la semaine 40 à la semaine 44 sur l'évènement print de la section détail ?

L'évènement print concerne un enregistrement, une ligne de ton état, donc une semaine précise identifié par le champ Semaine...

Vérifie ce problème
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h34   #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
Alors je t'explique comme j'ai procédé:

J'ai crée un formulaire à partir duquel l'utilisateur rentre sa "Semaine Début" et "Semaine Fin"
L'état peut afficher uniquement 5 semaines.

Je clique ensuite sur un bouton pour mettre à jour ma requête pour qu'il sélectionne que les semaines prises en compte.
Ensuite je clique sur un bouton qui m'ouvre l'Etat.

Comment faire pour qu'il me grise uniquement les cases où une personne est "7-320" dans "DernierDeHoraire" ?

Je te joins un Impr Ecran de mon état en mode création pour être plus précis.

Mon problème étant toujours le fait que si la personne est "7-320" à la "Premeire Semaine" alors Access grisera tous les reste de la ligne en gris meme si à la 2eme semaine il n'est pas "7-320" :/

En faisant uniquement çà, ca ne marche pas non plus:
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
 
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![A Lu] = True) And (Me![Cigles] Like "*T*") Then
Me![A Lu].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![B Ma] = True) And (Me![Cigles] Like "*T*") Then
Me![B Ma].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![C Me] = True) And (Me![Cigles] Like "*T*") Then
Me![C Me].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![D Je] = True) And (Me![Cigles] Like "*T*") Then
Me![D Je].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![E Ve] = True) And (Me![Cigles] Like "*T*") Then
Me![E Ve].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![F Sa] = True) And (Me![Cigles] Like "*T*") Then
Me![F Sa].BackColor = 13685711
End If
 
If (Me![DernierDeHoraire1] Like "*7*") And IsNull(Me![G Di] = True) And (Me![Cigles] Like "*T*") Then
Me![G Di].BackColor = 13685711
End If
 
End Sub
Je bloque :/
merci d'avance si tu peux m'éclairer d'avantage
Images attachées
Type de fichier : jpg Sans titre.JPG (20,6 Ko, 3 affichages)
Williamm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h45   #6
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
J'ai trouvé la solution héhé!
Grace a mon Impr Ecran je me suis rendu compte que le contrôle DernierDeHoraire n'etait pas dans la section détail

Merci User
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 08h09.


 
 
 
 
Partenaires

Hébergement Web