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 29/12/2010, 16h13   #1
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Par défaut problème de couleur d'un textbox

Bonjour,

J'ai un état avec des textbox ajencé pour former un jolie petit tableau.
Mon tableau à 4 colonne et 9 ligne.
Chaque texte box a étaient renommée pour le code qui suit.
Je veux que la couleur de fond de mes textboxs changent en comparent leurs valeurs avec une valeur cible.
Pour cela je parcour tous les controle qui sont des textbox, si leur nom correspond à ma variable je récupère la valeur du textbox et je la compare avec la valeur cible.
Si c'est suppérieur c'est vert sinon c'est rouge.

Le problème c'est ou mettre mon code.
Je ne peux pas le mettre sur l'ouverture de mon état car les textbox n'ont pas encore de valeur dans ce cas la.
J'ai essayé sur l'évènement activé mais ca ne marche pas non plus.
J'ai donc essayé de refaire mes textbnox sur un formulaire que j'incorpore à l'état.
Lorsque j'ouvre mon formulaire tout seul, ca marche nikel.
Mais quand je l'ouvre mon état il n'y a plus les couleurs.

Je vous remercie de votre aide.

PS: 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Dim S, M, Y, C As String
Dim vs, vm, vy, vc As Single
Dim ctrl As Control
 
For i = 1 To 9
S = "S" & i
M = "M" & i
Y = "Y" & i
C = "C" & i
 
    For Each ctrl In Me.Controls
    If TypeOf ctrl Is TextBox Then
 
    If ctrl.Name = S Then
    vs = ctrl.Value
    End If
 
 
 
    If ctrl.Name = M Then
    vm = ctrl.Value
    End If
 
    If ctrl.Name = Y Then
    vy = ctrl.Value
    End If
 
    If ctrl.Name = C Then
    vc = ctrl.Value
    End If
 
    End If
    Next
 
    For Each ctrl In Me.Controls
    If TypeOf ctrl Is TextBox Then
 
        If ctrl.Name = S Then
            If vs >= vc Then
            ctrl.BackColor = RGB(0, 255, 0)
            ElseIf vs < vc Then
            ctrl.BackColor = RGB(255, 0, 0)
            End If
        End If
 
        If ctrl.Name = M Then
            If vm >= vc Then
            ctrl.BackColor = RGB(0, 255, 0)
            ElseIf vm < vc Then
            ctrl.BackColor = RGB(255, 0, 0)
            End If
        End If
 
        If ctrl.Name = Y Then
            If vy >= vc Then
            ctrl.BackColor = RGB(0, 255, 0)
            ElseIf vy < vc Then
            ctrl.BackColor = RGB(255, 0, 0)
            End If
        End If
 
    End If
    Next
Next i
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 16h22   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Ecris une fonction qui te permet de savoir si la condition est remplie ou non.
Donc résultat = Vrai ou Faux.

Tu te sers de cette fonction dans le formatage conditionnel (expression)
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 16h50   #3
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Merci pour ta réponse claude mais je ne vois pas comment ca pourrai marcher.
Si je fait une fonction avec un boolean je ne vois pas comment m'en servir dans la mise en forme conditionnel.

Mais l'idée de la mise en forme conditionnel est bonne mais un peu longue.
(Je dois le faire pour chaque textbox).
Par programme ca serai plus facile.
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 17h23   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Peux-tu poster une BDD compatible Access2000.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/01/2011, 22h53   #5
Expert Confirmé
 
Avatar de FreeAccess
 
Homme
Inscription : mars 2006
Messages : 2 309
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 2 309
Points : 2 847
Points : 2 847
Bonjour,

Généralement ce genre de "mise en forme conditionnelle" se fait sur la propriété "Au formatage" de la zone de l'état concerné...

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If ctrl.Name = S Then
            If vs >= vc Then
            ctrl.BackColor = RGB(0, 255, 0)
            ElseIf vs < vc Then
            ctrl.BackColor = RGB(255, 0, 0)
            End If
        End If
...
...
End Sub
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess 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 12h20.


 
 
 
 
Partenaires

Hébergement Web