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

Mise en couleur d'une cellule en fonction du résultat d'une équation

3 réponses
Avatar
Alix Conseil Presse
Bonjour,

Je souhaite que le résultat d'une équation :

- mette en couleur une cellule,
- la fasse clignoter.

Exemple :

si le résultat de l'équation es VRAI la cellule se colore en vert,
s'il est FAUX la cellule clignote en rouge.

Merci et bien chaleureusement.


Jean-Marie

3 réponses

Avatar
ChrisV
Bonjour Jean-Marie,

En supposant que le résultat de l'équation se situe en Feuil!A1

Dans la feuille de code de l'onglet concerné:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
If [B14] = FAUX Then
With [B14].Interior
For i = 0 To 100
If .ColorIndex = 3 Then
.ColorIndex = 2
Else: .ColorIndex = 3
End If
Sleep (50)
DoEvents
Next i
End With
Else
[B14].Interior.ColorIndex = 10
End If
End Sub

Et dans un module du classeur:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


ChrisV


"Alix Conseil Presse" a écrit dans le message de news:
435763ac$0$7857$
Bonjour,

Je souhaite que le résultat d'une équation :

- mette en couleur une cellule,
- la fasse clignoter.

Exemple :

si le résultat de l'équation es VRAI la cellule se colore en vert,
s'il est FAUX la cellule clignote en rouge.

Merci et bien chaleureusement.


Jean-Marie



Avatar
ChrisV
Hum...
Peut être plus judicieux d'utiliser l'évènement Worksheet_Calculate() plutôt
que Worksheet_SelectionChange(ByVal Target As Range)

Donc toujours dans la feuille de code de l'onglet concerné:

Private Sub Worksheet_Calculate()
Dim i As Integer
If [A1] = FAUX Then
With [A1].Interior
For i = 0 To 100
If .ColorIndex = 3 Then
.ColorIndex = 2
Else: .ColorIndex = 3
End If
Sleep (50)
DoEvents
Next i
End With
Else
[A1].Interior.ColorIndex = 10
End If
End Sub


ChrisV


"ChrisV" a écrit dans le message de news:
%23$
Bonjour Jean-Marie,

En supposant que le résultat de l'équation se situe en Feuil!A1

Dans la feuille de code de l'onglet concerné:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
If [B14] = FAUX Then
With [B14].Interior
For i = 0 To 100
If .ColorIndex = 3 Then
.ColorIndex = 2
Else: .ColorIndex = 3
End If
Sleep (50)
DoEvents
Next i
End With
Else
[B14].Interior.ColorIndex = 10
End If
End Sub

Et dans un module du classeur:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


ChrisV


"Alix Conseil Presse" a écrit dans le message de
news: 435763ac$0$7857$
Bonjour,

Je souhaite que le résultat d'une équation :

- mette en couleur une cellule,
- la fasse clignoter.

Exemple :

si le résultat de l'équation es VRAI la cellule se colore en vert,
s'il est FAUX la cellule clignote en rouge.

Merci et bien chaleureusement.


Jean-Marie







Avatar
jb
Sur cet exemple, on teste un nb saisi dans la cellule A1:

Evénement Worksheet_Change:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Range("A1") > 1000 Then
clignote
Else
clignotepas
End If
End If
End Sub

Dans un module:

Sub clignote()
If Range("A1").Interior.ColorIndex = 33 Then
Range("A1").Interior.ColorIndex = 2
Else
Range("A1").Interior.ColorIndex = 33
End If
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"),
Procedure:="clignote"
End Sub

Sub clignotepas()
On Error Resume Next
Application.OnTime EarliestTime:=Now, Procedure:="clignote",
Schedule:úlse
End Sub


Cordialement JB