Insertion code clignotement dans code insertion ligne

Résolu
Bonsoir.

Sur mon Bouton d'insertion de ligne existant:

'Insérer Ligne
Private Sub CommandButton3_Click()
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
je voudrais intégrer ce code pour faire clignoter une cellule (H1)

If t = 0 Then
Range("H1").Interior.ColorIndex = 6
t = 1
Else
Range("H1").Interior.ColorIndex = 2
t = 0
End If
temps = Now + TimeValue("00:00:01")
Application.OnTime EarliestTime:=temps, Procedure:="clignote"
Pendant 30 secondes:
Sub temporisation()
Range("H1").Interior.ColorIndex = 6
Application.Wait Now() + TimeValue("0:0:30")
Range("H1").Interior.ColorIndex = 2
End Sub

Comment intégrer ces codes à mon code d'insertion de ligne ?

Merci



--
Windows 8.1 Office 2013

9 réponses

  1. Re,

    Dans le module VBA remplace le code par celui ci

    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
    If t.Interior.ColorIndex = xlNone Then
    If t.Value = "" Or t.Value <> "" Then
    t.Interior.ColorIndex = 6
    t.Font.ColorIndex = 3
    Else
    t.Interior.ColorIndex = 0
    t.Font.ColorIndex = xlAutomatic
    End If
    Else
    t.Interior.ColorIndex = 0
    t.Font.ColorIndex = xlAutomatic
    End If
    Next t
    Timer = Now() + TimeValue("00:00:01") 'le temps du clignotement
    Application.OnTime Timer, "Clignote"
    End Sub

    Sub ArretClignote()
    On Error Resume Next
    On Error Resume Next
    Application.OnTime Timer, "Clignote", , False
    Range("H1:I2").Interior.ColorIndex = xlNone
    End Sub

    0
    1. Superbe Mike.
      Tout fonctionne.
      Merci encore.
      0
  2. Re,

    Donc cellule H1 texte ou pas texte doit clignoter, c'est bien cela
    0
  3. Re,

    Donc la cellule doit clignoter en fonction de son contenu

    quel doit être le contenu en H1:I2 qui générer le clignotement
    0
    1. Non.
      Je clic sur mon bouton "Insérer une ligne"
      La cellule clignotante se met en branle, Jaune et police Rouge, avec ce texte:

      IMPORTANT:
      Faire un Tri Chronologique
      après chaque Modification
      pour Mise à Jour les Données
      du Graphique

      Au bout de 30 secondes, le cligotement cesse.

      C'est simplement pour me rappeler de faire ce tri chronologique (j'ai un bouton pour) car derrière, j'ai un graphique.
      0
  4. Re,

    voila avec l'extension XLS ça doit passer, ouvre le et Enregistre Sous dans type choisi l'extension XLSM
    https://www.cjoint.com/c/EIgsPz3ZP2j
    0
    1. Merci Mike.

      Ca fonctionne bien. Mais si je mets du texte dans la cellule qui doit clignoter, ça bogue.
      Cette cellule clignotante est une mise en garde. Un texte est donc prévu.
      (Fond cellule jaune, police rouge)
      0
  5. Re,

    tu passes certainement par Mozilla Firebox !

    si c'est le cas soit tu peux passer par Chrome ou je te refais le lien
    0
    1. Tout à fait.
      J'utilise Firefox.
      Et pourtant, sur ce site, à part de vieux fichiers, jamais je n'ai de soucis.
      Je ne veux plus de chrome, pour pas mal de raisons.
      Merci en core à toi.
      0
  6. Merci Mike.
    Mais pour l'instant, je ne peux lire ton fichier.
    Il me renvoie un code illisible...



    Problème déjà rencontré avec des fichiers anciens.
    Provient certainement de cjoint.com.

    Nous verrons si cela passe demain.

    Merci à toi et bonne soirée.

    0
    1. Re,

      les cellules fusionnées font mauvais ménage avec les codes, mais dans ce cas si la première cellule de la fusion est H1 ce n'est pas très important, il suffit d'en tenir compte dans les codes, j'ai directement placé le code de temporisation en début de procédure

      Option Explicit

      Dim Timer As Date

      Sub Clignote()
      Dim t As Range
      Application.OnTime Now + TimeValue("00:00:30"), "ArretClignotement"
      For Each t In Range("H1:J1").Cells 'Zone du clignotement
      If t.Interior.ColorIndex = xlNone Then
      If t.Value = "" Then
      t.Interior.ColorIndex = 6
      Else
      t.Interior.ColorIndex = 0
      End If
      Else
      t.Interior.ColorIndex = 0
      End If
      Next t
      Timer = Now() + TimeValue("00:00:01") 'le temps du clignotement
      Application.OnTime Timer, "Clignote"
      End Sub

      Sub ArretClignotement()
      On Error Resume Next
      Application.OnTime Timer, "Clignote", , False
      Range("H1:J1").Interior.ColorIndex = xlNone
      End Sub

      par contre ce qui risque perturber le clignotement c'est la procédure de temporisation si tu la relances avant la fin de la temporisation
      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.
      0
      1. Toujours pareil.
        Je mets ici un exemple pour que tu voies ce qui cloche.

        Nous récapitulons:
        1) Quand je clic sur "Ajout de ligneé, la cellule H1 se met à clignoter.
        2) Au bout de 30 secondes, le clignotement cesse tout seul.
        Merci

        https://www.cjoint.com/c/EIgrVEId7Im
        0
    2. Bonjour,

      dans un module colle ce code

      Option Explicit

      Dim Timer As Date

      Public Sub Clignote()
      Dim t As Range
      Call temporisation
      For Each t In Range("H1").Cells 'Zone du clignotement
      If t.Interior.ColorIndex = xlNone Then
      If t.Value = "" Then
      t.Interior.ColorIndex = 6
      Else
      t.Interior.ColorIndex = 0
      End If
      Else
      t.Interior.ColorIndex = 0
      End If
      Next t
      Timer = Now() + TimeValue("00:00:01") 'le temps du clignotement
      Application.OnTime Timer, "Clignote"
      End Sub
      Sub ArretClignotement()
      On Error Resume Next
      Application.OnTime Timer, "Clignote", , False
      Range("H1").Interior.ColorIndex = xlNone
      End Sub

      Sub temporisation()
      Application.OnTime Now + TimeValue("00:00:30"), "ArretClignotement"
      End Sub


      ensuite tout dépend à quel niveau de ta procédure dans le bouton tu souhaites le clignotement, si c'est après l'insertion des lignes entre Next i et End Sub saisi Call Clignote

      ce qui doit donner
      Next i
      Call Clignote
      End Sub

      si c'est en début de procédure place Call Clignote avant For i = 1 To 2
      0
      1. Merci Mike. Toujours sur la brèche...

        Pas de clignotement.
        PS: Cette cellule H1 est une cellule fusionnée. Est ce important ?

        Merci
        0