Rapport de message :*
 

Re: Cellule clignotante

Titre du sujet : Re: Cellule clignotante
par myDearFriend! le 14/11/2014 18:26:19

Bonjour ericcool, le Forum,

 

En pièce jointe, peut-être une solution si j'ai bien compris le problème...

 

J'ai utilisé de le code VBA suivant :

 

DANS LE MODULE DE CODE DE L'OBJET THISWORKBOOK

Option Explicit
' myDearFriend! - www.mdf-xlpages.com

Private Sub Workbook_Open()
    Set CellCible = Sheets(1).Range("B28")
    Set CellTest = Sheets(1).Range("F28")
    'Lance le clignotement  à l'ouverture si Feuil1 est active et si la cellule F28 supérieure à 0.6
    OkClign ActiveSheet
End Sub

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

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    OkClign Sh
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Sh Is Feuil1 Then Exit Sub
    If Not Application.Intersect(Target, Sh.Range("F11:F26")) Is Nothing Then
        'Lance ou stoppe le clignotement
        OkClign Sh
    End If
End Sub

 

DANS UN MODULE DE CODE STANDARD (ex: Module1)

Option Explicit
' myDearFriend! - www.mdf-xlpages.com
Public CellCible As Range, CellTest As Range
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
    Else
        StopClign
    End If
End Sub

Private Sub Clign()
    'Programmation de l'évènement toutes les secondes
    Temps = Now + TimeValue("00:00:01")
    Application.OnTime Temps, "Clign"
    'Affiche l'alerte ou la fait disparaître (alternativement)
    With CellCible
        .Interior.ColorIndex = IIf(.Interior.ColorIndex = 3, xlNone, 3)
    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
End Sub

 
J'espère que ça pourra t'aider.

Bien cordialement,