Cellule clignotante

rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012 - 27 sept. 2011 à 12:47
NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 - 27 sept. 2011 à 16:09
Bonjour


je dispose du code suivant qui me permet de faire clignoter la cellule G2 de ma feuille nommée
"clignotant" par une selection de cellule dans la plage G7 à G12 de cette meme feuille , ce code fonctionne bien , mais le petit soucis est que toute les cellules G2 de toutes les feuilles du classeur clignotent aussi , est ce qu'il est possible d'apporter un correctif au code suivant
pour que le clignotement ne se fasse que sur la page "clignotant" ?

voici le code

partie feuille :

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("G7:G12")) Is Nothing Then
    Application.OnTime Now + TimeValue("00:00:01"), "Flash"
    End If
    End Sub


partie module :

'faire clignoter la cellule active un certain nombre de fois puis arrêter

'procédure à appeler dans le code
Sub InitFlash()
  'lance un clignotement toutes les secondes
Application.OnTime Now + TimeValue("00:00:01"), "Flash"
End Sub

Sub Flash()
Static i
 
  i = i + 1
 
  'le clignotement
If Range("G2").Interior.ColorIndex = 6 Then
    Range("G2").Interior.ColorIndex = 3 'fond rouge
  Range("G2").Font.ColorIndex = 6 'caractères en jaune
Else
    Range("G2").Interior.ColorIndex = 6 'fond jaune
  Range("G2").Font.ColorIndex = 3 'caractères en rouge
End If
 
  'tant que le nombre de clignotements choisi n'est pas atteint
'(ici 5) on continue
If i <= 5 Then
    Application.OnTime Now + TimeValue("00:00:01"), "Flash"
  Else
    'sinon, on revient à la mise ne forme par défaut d'Excel
  'et on arrête tout
  Range("G2").Interior.ColorIndex = xlNone 'fond incolore
  Range("G2").Font.ColorIndex = 1 'caractères en noir
  i = 0
  End If
End Sub
 


je vous remercie par avance pour vos interventions

3 réponses

NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
27 sept. 2011 à 13:22
Bonjour,

Précises la feuille à viser :
Sheets("Mafeuille").Range(...)

Sinon, ça le fait sur la feuille active.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012
27 sept. 2011 à 14:15
merci pour ton intervention , j'ai fais ceci en suivant les transformations que tu m'a recommandé :


Sub Flash()
        Static i
         
          i = i + 1
         
          'le clignotement
        If Sheets("clignotement").Range("G2").Interior.ColorIndex = 6 Then
           Sheets("clignotement").Range("G2").Interior.ColorIndex = 3 'fond rouge
          Sheets("clignotement").Range("G2").Font.ColorIndex = 6 'caractères en jaune
        Else
           Sheets("clignotement").Range("G2").Interior.ColorIndex = 6 'fond jaune
          Sheets("clignotement").Range("G2").Font.ColorIndex = 3 'caractères en rouge
        End If
         
          'tant que le nombre de clignotements choisi n'est pas atteint
        '(ici 5) on continue
        If i <= 7 Then
            Application.OnTime Now + TimeValue("00:00:01"), "Flash"
          Else
            'sinon, on revient à la mise ne forme par défaut d'Excel
          'et on arrête tout
          Sheets("clignotement").Range("G2").Interior.ColorIndex = xlNone 'fond incolore
         Sheets("clignotement").Range("G2").Font.ColorIndex = 1 'caractères en noir
          i = 0
          End If
        End Sub


la ligne :

 If Sheets("clignotement").Range("G2").Interior.ColorIndex = 6 Then


est surlignée en jaune , je n'arrive pas à corriger





a++
0
NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
27 sept. 2011 à 16:09
Bonjour,

Quel message d'erreur ?

0