Cellule Clignotante Arrêter Clignotement

Résolu
Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   -  
Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour.
A la suite de mes essais de clignotement:
Sur ce code: (Fonctionne très bien)

Dim vNow As Variant
Public Sub Eclairage()
vNow = Now + TimeValue("00:00:01")
If Range("E3") <> "" Then Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 27, 3)
Application.OnTime vNow, "Eclairage"
End Sub

1) Si je désire que le clignotement s'arrête au bout de 30 secondes, que dois je rajouter ? J'ai essayé de reprendre les données de mon problème précédent, cela ne fonctionne pas.

2ème question:

2) Quelle est le code pour arrêter le clignotement par bouton ?
J'ai essayé sans succès:

Private Sub CommandButton8_Click()
'Sub ArretEclairage()
On Error Resume Next
On Error Resume Next
Application.OnTime Timer, "Eclairage", , False
Range("H1:I2").Interior.ColorIndex = xlNone
End Sub

Ou est l'erreur ?

Merci



--
Windows 8.1 Office 2013

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    si NS>constante sortie

    Dim vNow As Variant
    Dim NS As Byte
    Const Duree As Byte = 30
    
    Public Sub Eclairage()
        vNow = Now + TimeValue("00:00:01")
        NS = NS + 1
        If NS > Duree Then NS = 0: Range("H1:I2").Interior.ColorIndex = xlNone: Exit Sub
        If Range("E3") <> "" Then Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 27, 3)
        Application.OnTime vNow, "Eclairage"
    End Sub
    0
    1. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Merci f894009.

      Fonctionne (même si pendant quelques secondes, le clignotement continue, mais un fraction de seconde)

      Maintenant, comment arrêter le clignotement au bout de 30 secondes (par exemple), automatiquement, sans bouton, après son démarrage ?
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention  
       
      Re,

      avec le code que j'ai mis a dispo !!!!! Y a pas de bouton
      0
    3. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai bien vu. Mais rien n'arrête le clignotement au bout de 30 secondes.
      Je voudrais appliquer ça en début du code de clignotant:
      Application.OnTime Now + TimeValue("00:00:30"), "ArretEclairage"
      Fonctionne sur un code que Mike m'a donné sur une autre demande.
      Mais je ne sais pas comment l'adapter à:

      Dim vNow As Variant
      Public Sub Eclairage()
      vNow = Now + TimeValue("00:00:01")
      If Range("E3") <> "" Then Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 27, 3)
      Application.OnTime vNow, "Eclairage"
      End Sub
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention  
       
      Re,

      J'ai bien vu. Mais rien n'arrête le clignotement au bout de 30 secondes. Si ca s'arrete sans avoir besoin de
      Application.OnTime Now + TimeValue("00:00:30"), "ArretEclairage"
      0
    5. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Ok, je te crois. Je n'ai pas assez de connaissances en ce domaine.
      Mais ou est le code qui limite la durée du clignotement à 30 secondes, une fois que celui ci est lancé ?
      Tous les codes que j'ai pu voir avaient un compteur. ("00:00:30")
      Merci
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour le fil,

    Viking, pourquoi ouvres tu chaque jour une discussion sur le même sujet et met le statut de la précédente en résolu.

    ne fait pas la même chose avec cette dernière, merci
    0
    1. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Je n'ouvre pas chaque jour une discussion sur le même sujet...
      J'ai ouvert en premier:
      "Insertion code clignotement dans code insertion ligne"
      J'ai mis en résolu, car c'est le cas.
      Ensuite, j'ai ouvert:
      "Cellule Clignotante Arrêter Clignotement"
      Premièrement, parce que je n'arrive pas à adapter la tempo de 30 secondes du code:
      Option Explicit
      Dim Timer As Date
      Sub Clignote()
      Dim t As Range
      On Error Resume Next
      Application.OnTime Now + TimeValue("00:00:30"), "ArretClignote"
      For Each t In Range("H1:I2").Cells 'Zone du clignotement ETC...

      à mon code qui n'arrête pas le clignotement:

      Dim vNow As Variant

      Public Sub Eclairage()
      vNow = Now + TimeValue("00:00:02")
      If Range("E3") = "" Then Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 2, 3)
      Application.OnTime vNow, "Eclairage"
      End Sub

      Deuxièmement pour que mon poste soit bien précis dans son titre.
      "Cellule Clignotante Arrêter Clignotement", car j'en ai trouvé plusieurs mais qui ne fonctionnent pas. L'intitulé est précis dans sa demande.
      Essayez de trouver un poste avec une mot ou une expression-clé, sur ce forum ou sur un autre, vous verrez qu'il faut passer des heures pour retrouver ses petits, à travers des tires de post plus ou moins "clairs", des reponses plus ou moins valables. C'est dans ce but que mes formulations de demandes sont claires et faciles à retrouver pour quelqu'un qui se pose les mêmes questions.

      Cordialement
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Vous pouvez repondre a ceci:

    Le depart de clignotement est donne aussi par la bouton insertion????

    Et l'insertion de ligne est a quelle ligne ??

    code modifie en attendent la suite:

    Dim vNow As Variant
    Dim NS As Byte                     ' compteur de seconde
    Const Duree As Byte = 30    ' constante pur parametrer la duree du clignotement
    
    Public Sub Eclairage()
        vNow = Now + TimeValue("00:00:02")
        'si compteur superieur a constante de dure
        'raz compteur,
        'raz couleur plage de cellule,
        'sortie
        If NS > Duree Then NS = 0: Range("H1:I2").Interior.ColorIndex = xlNone: Exit Sub
        If Range("E3") = "" Then
            Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 2, 3)
            'incrementation du compteur
            NS = NS + 2
        Else
            NS = 0: Range("H1:I2").Interior.ColorIndex = xlNone
            Exit Sub
        End If
        Application.OnTime vNow, "Eclairage"
    End Sub
    0
    1. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Merci f894009.

      Voici mon code, qui fonctionne très bien.

      Dim vNow As Variant

      Public Sub Eclairage()
      vNow = Now + TimeValue("00:00:02")
      If Range("E3") = "" Then Range("H1").Interior.ColorIndex =IIf(Range("H1").Interior.ColorIndex = 3, 2, 3)
      Application.OnTime vNow, "Eclairage"
      End Sub

      Quand j'insère une ligne (en A3) par bouton, H1 clignote avec un message, tant que je n'ai rien mis en E3.
      Dés que E3 est renseigné, le clignotement cesse.
      Je voudrais donc qu'à partir de l'insertion de ligne, début de clignotement, si je n'inscris rien, le clignotement cesse automatiquement au bout de 30 secondes.

      Merci
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,

      j'ai mis un bouton, puisque vous voulez pas mettre votre code complet:

      Dim vNow As Variant
      Dim NS As Byte                     ' compteur de seconde
      Const Duree As Byte = 30    ' constante pur parametrer la duree du clignotement
      
      Sub Bouton1_Cliquer()
          'insertion ligne
          Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
          'clignotant
          Eclairage
      End Sub
      
      Public Sub Eclairage()
          vNow = Now + TimeValue("00:00:02")
          'si compteur superieur a constante de dure
          'raz compteur,
          'raz couleur plage de cellule,
          'sortie
          If NS > Duree Then NS = 0: Range("H1:I2").Interior.ColorIndex = xlNone: Exit Sub
          If Range("E3") = "" Then
              Range("H1").Interior.ColorIndex = IIf(Range("H1").Interior.ColorIndex = 3, 2, 3)
              'incrementation du compteur
              NS = NS + 2
          Else
              NS = 0: Range("H1:I2").Interior.ColorIndex = xlNone
              Exit Sub
          End If
          Application.OnTime vNow, "Eclairage"
      End Sub
      
      0
    3. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Pardon, c'est un oubli de ma part.

      Private Sub CommandButton3_Click()
      'Sub Insérer Ligne()
      For i = 1 To 2
      Sheets(i).Cells(3, 1).EntireRow.Insert
      Sheets(i).Rows(Cells(3, 1).Row + 1).Copy Sheets(i).Rows(Cells(3, 1).Row)
      On Error Resume Next
      Sheets(i).Rows(Cells(3, 1).Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
      Dim plage As Range
      Set plage = Sheets(i).Range("A3:G3000")
      plage.Borders(xlEdgeBottom).LineStyle = xlContinuous
      plage.Borders(xlInsideHorizontal).LineStyle = xlContinuous
      Next
      End Sub
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention  
       
      Re,

      Et le clignotant c'est sur deux feuilles ?????????????????????????????????????????
      0
    5. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7 > Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention  
       
      Non, sur une seule, pourquoi ?
      0