Rapport de message :*
 

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.

En espérant que ça réponde à ton besoin.

J'arrêterai là pour ma part car je crois, ericcool, que tu commences à transformer ton oeuvre en guirlande de noël, lol

 
Bien cordialement,