Insertion code clignotement dans code insertion ligne

Résolu/Fermé
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 - 6 sept. 2015 à 17:32
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 - 7 sept. 2015 à 13:15
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





A voir également:

9 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
6 sept. 2015 à 18:15
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
6 sept. 2015 à 18:35
Merci Mike. Toujours sur la brèche...

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

Merci
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
Modifié par Mike-31 le 6/09/2015 à 19:00
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
6 sept. 2015 à 19:47
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
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
6 sept. 2015 à 20:17
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
6 sept. 2015 à 20:30
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
6 sept. 2015 à 20:34
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
6 sept. 2015 à 20:38
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
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
6 sept. 2015 à 20:42
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
7 sept. 2015 à 12:13
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
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
7 sept. 2015 à 12:33
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
7 sept. 2015 à 12:49
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
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
7 sept. 2015 à 12:52
Re,

Donc cellule H1 texte ou pas texte doit clignoter, c'est bien cela
0
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
7 sept. 2015 à 13:06
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
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
7 sept. 2015 à 13:08
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
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
7 sept. 2015 à 13:15
Superbe Mike.
Tout fonctionne.
Merci encore.
0