Bouton clignotant(petite anomalie persistante)
Bonjour
sur une feuille de mon classeur je dispose d'un bouton auquel une macro d’incrémentation est affectée ( je l'ai appelé VALIDEZ)
à chaque fois que je clique dessus ce dernier incremente de +1 une cellule située dans une autre page.
je souhaiterai le faire clignoter en permanence à raison d'un clignotement par seconde , est ce que cela demande à modifier le code deja affecté au bouton ? si il est possible de pouvoir le faire que devrais je ajouter au code qui est celui ci ?:
Sub validez1()
'
' validez1 Macro
' Macro enregistrée le 09/09/2011 par MOI
'
'
Sheets("FEUILLE JOURNALIERE").Select
Range("C31").Select
[C31] = [C31] + 1
Application.Run _
"'GESTION DES LAISSEZ PASSER.xls'!FEUILLEJOURNALIERE_Bouton1_QuandClic"
End Sub
Vous remerciant pour vos interventions et pour toute idée sur la question
Bonjour Rocket4 le forum
possible à faire mais pas une bonne idée !!!
tu auras en permanence après des petits clignotement de ta feuille active
et en plus à mon sens aucun intérêt sauf avoir des ennuis ( ce n'est que mon avis perso naturellement)
a+
papou
bonsoir
bon ...je m'en remet à votre avis Paritec
à ce bouton , est il possible de la faire clignoter sous condition , je m'explique :
je dispose d'une colonne allant de B21 à B100 sur ma feuille nommée "reseau" (colonne initialement vide) , et le bouton en question se trouve sur la meme feuille , dès que je remplit une cellule de cette meme colonne , cela ferait clignoter le bouton pendant 4 secondes seulement , puis lorsque par la meme manip je remplit une nouvelle cellule de cette colonne obtenir 4 seconde de clignotement , puis encor une autre cellule et obtenir 4secondes de clignotement ....etc.... il se peut que ce que je souhaite faire soit en dehors du champs
des possibilités d'excel , on ne peut pas tout demander et j'en suis conscient .
toute idée sur la faisabilité d'une tel sequence serait la bienvenue
merci encor
Bonjour Rocket4 le forum
oui mais ton clignotement pour 4 seconde c'est pareil !!! bref si vraiment tu veux cela on te le fera mais franchement c'est une connerie, ton fichier c'est un fichier de travail ou pour t'amuser??
si c'est pour t'amuser OK mais si c'est pour bosser je te re déconseille une 2ème fois enfin redis moi si tu persistes dans ce sens je te ferai la code, (mais à contre cœur)
a+
papou
+1
Il y a des tas de façon de faire un warning sans allez chercher des trucs tordus...
Excel est un logiciel de calcul : pour un arbre de Noel voir du coté de Photoshop !
A+
bonjour , oui c'est une necessité ,
non pas pour donner un coté folklorique à mes feuilles de travail , ou meme preparer noel
priorité dans ma feuille de calcul et oublier de cliquer dessus peut engendrer une suite d'etapes ou il va manquer un tas d'elements
ce bouton doit simplement clignoter 4 seconde lorsque d'une donnée est introduite dans la colonne B21 à B100 sur ma feuille nommée
reseau , vu le nombre d'utilisateurs de cette feuille , j'y vois une vraie necessité
Merci pour votre compréhension
bonsoir
je vois que je n'est pas trop recu de réponses pour ce poste , bon je revois mes ambitions à la baisse
en réitérant une demande d'aide un peu plus simplifiée ;
lorsque je procede sur ma feuille de calcul nommée" reseau" à une sélection de n'importe qu'elle cellule de la colonne allant de B21 à B100 comment puis je faire clignoter la cellule C18 sur la couleur rouge seulement pendant 4 seconde ?
Merci pour vos avis , et même s'il existe une impossibilité de pouvoir le faire je prendrai en compte vos suggestions
Cordialement
Salut le forum
Un exemple pour faire clignoter la cellule active
'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 ActiveCell.Interior.ColorIndex = 6 Then
ActiveCell.Interior.ColorIndex = 3 'fond rouge
ActiveCell.Font.ColorIndex = 6 'caractères en jaune
Else
ActiveCell.Interior.ColorIndex = 6 'fond jaune
ActiveCell.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
ActiveCell.Interior.ColorIndex = xlNone 'fond incolore
ActiveCell.Font.ColorIndex = 1 'caractères en noir
i = 0
End If
End Sub
Mytå
Merci "Myta" c'est bien aimable à toi et encor merci d'avoir consacré de ton temps sur ma question .
Cordialement , Rocket
bonjour
encor merci Myta pour ce code que j'ai testé et qui marche , je voudrai le transformer pour que ce clignotement ne se fasse que dans une seule cellule (par exemple la G2) si je clique n'importe ou sur une plage de cellule comprise entre G7 et G12,
j'ai essayé d'operer quelques transformation sur ce code en placant une condtion si , mais ca ne marche pas , entant encor bien loin
d'etre au point en VB.
merci pour tout aide
Re le forum
Code à placer dans le module de la 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
Et dans la macro Flash() remplace ActiveCell par Range("G2")
Mytå
Merci Myta
j'ai tout replacé dans le module de la feuille ce qui donne ceci avec les changements que tu m'a recommandé :
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
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
lorsque je selectionne une cellule comprise entre G7 et G12 rien ne se passe !
il y a aussi une chose qui m'echappe , le code que tu m'a fourni est censé fonctionner avec un bouton ,
or je n'en ai plus besoin car j'opere uniquement une selection de cellule sur la plage G7 à G12 sur cette meme feuille pour faire réagir la cellule G2 , à moins que je ne me trompe , là je suis dans le flou je dois avouer .....
re......à farfouiller , j'ai finalement remis de l'ordre
Cordialement , Rocket
bonjour
encor merci Myta pour ton code
il persiste cependant une petite anomalie bien que ce dernier fonctionne ;
je reprend 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
la cellule G2 clignote bien lorsque je selectionne une cellule de la colonne G7:G12
le petit soucis c'est que toute les cellules G2 de toutes les feuilles du classeur clignotent aussi
comment pourrais je introduire l'instruction de clignotement uniquement sur la feuille de travail si celle ci s'appelle
"clignotement" ?
Merci pour la correction que vous pourriez m'apporter
Bonsoir tous
tu remplaces partout ou tu as
Range("G2")
par
sheets("Clignotement").range("G2"). .........et le restes de tes lignes
a+
papou
Bonsoir,
Une possibilité si tu veux faire clignoter un bouton (ActiveX) A mettre dans le module de la feuille où est posé le bouton :
Private Declare Function GetTickCount Lib "Kernel32" () As Long
Sub Minuterie(Milliseconde As Long)
Dim Arret As Long
Arret = GetTickCount() + Milliseconde
Do While GetTickCount() < Arret
DoEvents
Loop
End Sub
Sub Clignote()
Dim I As Integer
Do While I < 4
CommandButton1.BackColor = &HFF&
Minuterie 500
CommandButton1.BackColor = &H8000000F
Minuterie 500
I = I + 1
Loop
CommandButton1.BackColor = &H8000000F
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [G7:G12]) Is Nothing Then
Clignote
End If
End Sub
Hervé.
Re le forum
Rocket, quand ton véhicule est en trouble, tu amènes une photo de ton moteur au garagiste . . .
Quelle erreur est retournée par le "dégogeur" ?
Regarde bien ta feuille porte le nom "Clignotement " ? (Espace derrière le nom)
Et pour la lisibilité
Sub Flash()
Static i
i = i + 1
'le clignotement
With Sheets("Clignotement").Range("G2")
If .Interior.ColorIndex = 6 Then
.Interior.ColorIndex = 3 'fond rouge
.Font.ColorIndex = 6 'caractères en jaune
Else
.Interior.ColorIndex = 6 'fond jaune
.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
.Interior.ColorIndex = xlNone 'fond incolore
.Font.ColorIndex = 1 'caractères en noir
i = 0
End If
End With
End Sub
Mytå
Merci Myta , probleme résolu !!