Insertion code clignotement dans code insertion ligne

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   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Merci Mike. Toujours sur la brèche...

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

      Merci
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Il faut faire attention et être très précis lorsque tu copies des codes, le moindre espace ou caractère bloque un code

    https://www.cjoint.com/c/EIgspSZ7RGj
    0
  4. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      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
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      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
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Donc cellule H1 texte ou pas texte doit clignoter, c'est bien cela
    0
    1. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Tout à fait.
      Bogue dés que je mets du texte.
      Si je retire le texte, fonctionne de nouveau.
      https://www.cjoint.com/c/EIhlfvk6CQm
      0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Viking58 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   7
       
      Superbe Mike.
      Tout fonctionne.
      Merci encore.
      0