Faire Clignoter une Cellule Excel

Résolu/Fermé
cesam.m Messages postés 16 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 8 avril 2021 - 27 janv. 2017 à 15:07
cesam.m Messages postés 16 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 8 avril 2021 - 28 janv. 2017 à 20:47
Bonjour,

J'ai récupéré une macro pour faire clignoter une cellule excel en essayant de la modifier un peu mais je ne m'en sors pas.

Je souhaite faire clignoter la cellule N7 en fonction d'un calcul en P6.

Le problème est que la cellule N7 clignote sans cesse quel que soit le résultat en P6

Y a t'il une âme charitable pour m'aider?

Voici ce que j'ai:

Dans Modules:

Option Explicit

Dim Temps As Variant

Public Sub Clign()
'Programmation de l'évènement toutes les secondes
Temps = Now + TimeValue("00:00:02")
Application.OnTime Temps, "Clign"
'Affiche l'alerte ou la fait disparaître (alternativement)
With ThisWorkbook
'Fond
With .Sheets("Articles").Range("N7")
.Interior.ColorIndex = IIf(.Interior.ColorIndex = 3, xlNone, 3)
End With

End With
End Sub
Public Sub StopClign()
On Error Resume Next
'Stoppe la gestion de l'évènement OnTime
Application.OnTime Temps, "Clign", , False
On Error GoTo 0
'Cache l'alerte
With ThisWorkbook
'Fond
.Sheets("Articles").Range("N7").Interior.ColorIndex = xlNone

End With
End Sub



et dans This Workbook:




Option Explicit

Private Sub Workbook_Open()
'Lance le clignotement à l'ouverture si la cellule P6 est non vide
If "P6" <> "" Then Clign

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Interrompt le clignotement éventuel avant fermeture
StopClign
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim F As Worksheet
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Sh.Range("P6")) Is Nothing Then

'Lance ou stoppe le clignotement
If "P6" <> "" Then Clign Else StopClign
End If
End Sub

Merci pour votre aide

A voir également:

9 réponses

Mike-31 Messages postés 18349 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 novembre 2024 5 105
Modifié par Mike-31 le 27/01/2017 à 16:18
Bonjour,

je reconnais ce code,
alors quand tu fais référence à une cellule tu écris
Range("P6") éventuellement [P6] alors que toi tu as écris "P6"

ensuite 2 secondes pour le clignotement me semble lent
("00:00:02")
essaye de réduire à 1 seconde ("00:00:01")
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
cesam.m Messages postés 16 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 8 avril 2021
27 janv. 2017 à 16:54
Bonjour Mike,

Oui c'est bien ton code merci pour t'on aide.
J'ai modifié selon tes informations mais la cellule n'arrête toujours pas de clignoter.Même quand la cellule P6 est vide.

A vrai dire en P6 j'ai une formule: Ou je vais chercher dans un onglet un nouveau prix.
S' il n'existe pas alors je met vide "".

=SI(ESTNA(EQUIV(ref_em;nx_prix;0));"";INDEX(plage_nx_prix;EQUIV(ref_em;nx_prix;0);2))

As tu une idée pour que Cela Fonctionne?

Voila ma modification:

Private Sub Workbook_Open()
'Lance le clignotement à l'ouverture si la cellule P6 est non vide
If Range("P6") <> "" Then Clign

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Interrompt le clignotement éventuel avant fermeture
StopClign
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim F As Worksheet
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Sh.Range("P6")) Is Nothing Then

'Lance ou stoppe le clignotement
If Range("P6") <> "" Then Clign Else StopClign
End If
End Sub
0