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 , merci d'avoir examiné la question , cependant ,tout en gardant la macro affecté initialement

à 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 mais ce bouton revêt une certaine

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 pas trop tot et ca marche comme souhaité ..... merci Myta

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é.

bonsoir

ayant suivit tes recommandation papou , j'ai une ligne à debuger , j'ai essayé quelques manip , mais j"y arrive pas

je joins une copie ecran du code avec l'indication de la ligne présentant une anomalie

Merci pour toute remarque

capture6

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 !!

Rechercher des sujets similaires à "bouton clignotant petite anomalie persistante"