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

Faire clignoter une cellule si ......

11 réponses
Avatar
Dom Férampière®©
Bonjour,

Question déjà posée par moi ou par d'autres mais je n'arrive pas à faire
fonctionner avec les solutions proposées.
Faut dire que le VBA et moi .....

Avec mise en forme conditionnelle, je change la couleur de fond et celle
du texte sans problème mais ce n'est pas toujours suffisant pour attirer
l'oeil sur une alerte.
Y-a'-t'il une/des solutions plus simples (comme dans word par exemple)

Merci

--
Dom Férampière®©
-----------------------------------------------

10 réponses

1 2
Avatar
michdenis
Bonjour,

Voici un fichier exemple que tu peux télécharger : http://cjoint.com/?dsufUAYKCq




"Dom Férampière®©" a écrit dans le message de groupe de discussion
:

Bonjour,

Question déjà posée par moi ou par d'autres mais je n'arrive pas à faire
fonctionner avec les solutions proposées.
Faut dire que le VBA et moi .....

Avec mise en forme conditionnelle, je change la couleur de fond et celle
du texte sans problème mais ce n'est pas toujours suffisant pour attirer
l'oeil sur une alerte.
Y-a'-t'il une/des solutions plus simples (comme dans word par exemple)

Merci

--
Dom Férampière®©
-----------------------------------------------
Avatar
Dom Férampière®©
À michdenis et aux lecteurs de passage :

Merci, pour la réponse, non seulement rapide mais ça me semble bien.
Hélas, je suis vraiment nul .... :-(
- C'est quoi le "moidule feuille" ?
- J'ai vu la macro clignotement mais je ne vois pas la condition > 20,
ni les références aux 4 cellules concernées .. C'ets où ? dans le module
feuille ? qui lui même est où ?
- Si l'alerte correspond à une date, ça ce met dans le module feuille ou
dans ???

Désolé mais suis pas doué

Merci

--
Dom Férampière®©
-----------------------------------------------
Avatar
michdenis
Module Feuille : Un clic droit sur l'onglet de la feuille et
tu sélectionnes la commande du menu contextuel
-visualiser le code- où le code est écrit, ce module est
le module feuille ou de classe de ladite feuille.

Dans la section de gauche, afficher l'arborescence des
objets de ton projetVBA, tu verras aussi l'item "Module1"
un double-clique et tu apercevras une ligne de code dans le haut.





"Dom Férampière®©" a écrit dans le message de groupe de discussion
:
À michdenis et aux lecteurs de passage :

Merci, pour la réponse, non seulement rapide mais ça me semble bien.
Hélas, je suis vraiment nul .... :-(
- C'est quoi le "moidule feuille" ?
- J'ai vu la macro clignotement mais je ne vois pas la condition > 20,
ni les références aux 4 cellules concernées .. C'ets où ? dans le module
feuille ? qui lui même est où ?
- Si l'alerte correspond à une date, ça ce met dans le module feuille ou
dans ???

Désolé mais suis pas doué

Merci

--
Dom Férampière®©
-----------------------------------------------
Avatar
Dom Férampière®©
À michdenis et aux lecteurs de passage :

Merci pour tous ces renseignements. Je verrai ça dimanche car 2 jours
hors de la maison => à suivre

--
Dom Férampière®©
-----------------------------------------------
Avatar
Dom Férampière®©
À michdenis et aux lecteurs de passage :

Merci, pour la réponse, mais hélas, je suis vraiment nul .... :-(



J'ai esayé le bidule (comparaison de la valeur de 2 cases) après la
signature mais fiasco.
De plus, y'a-t'il un lien avec la macro ?

On continue en privé pour éviter de surcharger le forum .... sauf si ça
peut en aider ?

Merci

--
Dom Férampière®©
-----------------------------------------------
Rem Private Sub Worksheet_Change(ByVal Target As Range)
Rem Dim S As Double
Rem With Range("A3,B7,C2,D7")
Rem If Not Intersect(Target, .Cells) Is Nothing Then
If "B22" = "P22" Then
For i = 0 To 40 'Valeur à augmenter pour la durée !
If ("B22").Interior.ColorIndex = xlNone Then
.Cell.Interior.ColorIndex = 3
Else:
.Cell.Interior.ColorIndex = xlNone
End If
'La fonction sleep relève de l'API en module1
Sleep 100 'vitesse du clignotement
DoEvents
Next i
End If
.Cells.Interior.ColorIndex = xlNone
Rem End If
End With

End Sub
Avatar
michdenis
| On continue en privé pour éviter de surcharger le forum
| .... sauf si ça peut en aider ?

**** Le forum et l'aide c'est ici.
Tout le mode peut participer et apporter des suggestions.
C'est ce qui fait la richesse du forum.

D'abord, il faut définir ta question. Où est-elle ?
Modifier une ligne du code que j'ai commis n'est pas suffisant...
Avatar
Dom Férampière®©
À michdenis et aux lecteurs de passage :

**** Le forum et l'aide c'est ici.
Tout le mode peut participer et apporter des suggestions.
C'est ce qui fait la richesse du forum.



Vi mais vi mon incompétence, ça peut durer er dond faire beaucoup de
bande passante indésirable

D'abord, il faut définir ta question. Où est-elle ?



If "B22" = "P22" Then

P22 correspond à une équivalence entre 2 dates ddmm donc après avoir
extrait ces jjmm de jjmmyyyy

--
Dom Férampière®©
-----------------------------------------------
Avatar
michdenis
Dans la cellule B22 ou P22,

si tu changes MANUELLEMENT ou par COPIER-COLLER,
la date de l'une de ces cellules et si le contenu de ces 2
cellules est égal, ces 2 cellules clignoteront. Dans les 2
cellules, j'ai supposé que tu avais un format "date" reconnu
par Excel.

La procédure suivante est à mettre dans le module feuille où
l'action se déroule. Pour ce faire, un clic droit sur l'onglet de
cette feuille et dans le menu contextuel, tu sélectionnes la
commande "Visualiser le code". Tu copies ce qui suit dans la
"page" blanche.

'----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim S As Double
On Error Resume Next
With Range("B22,P22")
If Not Intersect(Target, .Cells) Is Nothing Then
If Range("B22").Value2 = Range("P22").Value Then
Range("B22").Select
For i = 0 To 40 'Valeur à augmenter pour la durée !
If Range("B22").Interior.ColorIndex = xlNone Then
.Cells.Interior.ColorIndex = 3
Else:
.Cells.Interior.ColorIndex = xlNone
End If
'La fonction sleep relève de l'API en module1
Sleep 100 'vitesse du clignotement
DoEvents
Next i
End If
.Cells.Interior.ColorIndex = xlNone
End If
End With

End Sub
'----------------------------------------





"Dom Férampière®©" a écrit dans le message de groupe de discussion
:
À michdenis et aux lecteurs de passage :

**** Le forum et l'aide c'est ici.
Tout le mode peut participer et apporter des suggestions.
C'est ce qui fait la richesse du forum.



Vi mais vi mon incompétence, ça peut durer er dond faire beaucoup de
bande passante indésirable

D'abord, il faut définir ta question. Où est-elle ?



If "B22" = "P22" Then

P22 correspond à une équivalence entre 2 dates ddmm donc après avoir
extrait ces jjmm de jjmmyyyy

--
Dom Férampière®©
-----------------------------------------------
Avatar
michdenis
Si le contenu des cellules B22 et P22 contient des formules
qui retournent des "dates", utilise plutôt cette procédure :

'----------------------------------------
Private Sub Worksheet_Calculate()
Dim S As Double
With Range("B22,P22")
If Range("B22").Value2 = Range("P22").Value Then
Range("B22").Select
For i = 0 To 40 'Valeur à augmenter pour la durée !
If Range("B22").Interior.ColorIndex = xlNone Then
.Cells.Interior.ColorIndex = 3
Else:
.Cells.Interior.ColorIndex = xlNone
End If
'La fonction sleep relève de l'API en module1
Sleep 100 'vitesse du clignotement
DoEvents
Next i
End If
.Cells.Interior.ColorIndex = xlNone
End With
End Sub
'----------------------------------------



"Dom Férampière®©" a écrit dans le message de groupe de discussion
:
À michdenis et aux lecteurs de passage :

**** Le forum et l'aide c'est ici.
Tout le mode peut participer et apporter des suggestions.
C'est ce qui fait la richesse du forum.



Vi mais vi mon incompétence, ça peut durer er dond faire beaucoup de
bande passante indésirable

D'abord, il faut définir ta question. Où est-elle ?



If "B22" = "P22" Then

P22 correspond à une équivalence entre 2 dates ddmm donc après avoir
extrait ces jjmm de jjmmyyyy

--
Dom Férampière®©
-----------------------------------------------
Avatar
michdenis
Dans la procédure
"Private Sub Worksheet_Change(ByVal Target As Range)"
Il serait préférable que tu remplaces :
la ligne : Range("B22").Select
par
Target.Select
1 2