Re: Cellule clignotante |
Titre du sujet : Re: Cellule clignotante par myDearFriend! le 15/11/2014 00:24:00 Re ericcool,
Ci-joint une façon de faire je pense....
J'ai d'abord modifié la procédure Workbook_Open() de l'objet ThisWorkbook comme suit :
Private Sub Workbook_Open()
With Sheets(1) Set CellCible = .Range("B28") Set CellTest = .Range("F28") Set ShapeAlerte = .Shapes("Alerte") ShapeAlerte.Visible = False End With 'Lance le clignotement à l'ouverture si Feuil1 est active et si la cellule F28 supérieure à 0.6 OkClign ActiveSheet End Sub
J'ai modifié ensuite le code du module Standard : Option Explicit
' myDearFriend! - www.mdf-xlpages.com Public CellCible As Range, CellTest As Range Public ShapeAlerte As Shape Dim Temps As Variant Public Sub OkClign(Sh As Worksheet) 'Lance le clignotement si Feuil1 est active et si la cellule F28 supérieure à 0.6 If Sh Is Feuil1 And CellTest.Value > 0.6 Then Clign True Else StopClign End If End Sub Private Sub Clign(Optional vInit As Boolean = False) Static TempsMax As Variant 'Programmation de l'évènement toutes les secondes Temps = Now + TimeValue("00:00:01") If vInit Then TempsMax = Now + TimeValue("00:00:12") End If Application.OnTime Temps, "Clign", TempsMax 'Affiche l'alerte ou la fait disparaître (alternativement) With CellCible .Interior.ColorIndex = IIf(.Interior.ColorIndex = 3, xlNone, 3) End With With ShapeAlerte .Visible = Not .Visible 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 CellCible.Interior.ColorIndex = xlNone ShapeAlerte.Visible = False End Sub J'ai aussi modifié les formules en F27 et F28 pour éviter les valeurs d'erreur de calcul. |
Forums