Bonjour,
Voilà, voilà, je crois que tout est dit dans le titre…
En fait, je veux que :
Si ma valeure du champ > 0 alors police bleu
Si inférieur = couleure rouge
Pour cela, j'ai écris le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 If Not IsNull(Me!TaOpNumCheque.Value) Then Me![TaOpNumCheque].ForeColor = ColNoir Else Exit Sub End If If Not IsNull(Me!Solde_Compte.Value) Then SolCom = Me![Solde_Compte].Value Else Exit Sub End If If SolCom > 0 Then Me![Montant].ForeColor = ColBleu If SolCom < 0 Then Me![Montant].ForeColor = ColRouge
Cela fonctionne bien dans mon champ du formulaire unique (que j'ai mis visible pour tester), mais il ne s'applique pas dans ma partie formulaire <<Feuille de données>>
Je suis sur un formulaire double affichage.
je ne veux pas utiliser la Mise en forme conditionnelle, car je suis obliger de mettre une couleur de fond et comme mes couleurs de lignes sont différentes entre les lignes paires et impaires… je veux juste changer la couleur de police.
Si quelqu'un à une solution, j'ai cherché pas mal et j'ai peur qu'il n'y ai pas de solutions…
Et pendant que j'y suis, si quelqu'un sait comment rendre le fond d'un formulaire invisible par VBA , mais que le fond, pas les champs.
J'y arrive par le codeLe problème est que c'est tout mon sous formulaire qui est transparent mes champs compris.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Option Compare Database Option Explicit Private Const WS_EX_LAYERED = &H80000 Private Const LWA_ALPHA = &H2 Private Const GWL_EXSTYLE = &HFFEC Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, _ ByVal lngWinIdx As Long, _ ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, _ ByVal lngWinIdx As Long) As Long Private Declare Function SetLayeredWindowAttributes Lib "USER32" _ (ByVal hWnd As Long, _ ByVal crKey As Integer, _ ByVal bAlpha As Integer, _ ByVal dwFlags As Long) As Long Private Sub Form_Load() Dim lAlpha As Long lAlpha = 255 * (20 / 100) SetWindowLong Me.hWnd, GWL_EXSTYLE, GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED SetLayeredWindowAttributes Me.hWnd, 0, lAlpha, LWA_ALPHA End Sub
Merci d'avance
Partager