rocket4
Messages postés47Date d'inscriptionlundi 18 décembre 2000StatutMembreDernière intervention31 janvier 2012
-
27 sept. 2011 à 12:47
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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 ---
rocket4
Messages postés47Date d'inscriptionlundi 18 décembre 2000StatutMembreDernière intervention31 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