Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Oups, j'ai envoyé par erreur avant de finir

3 réponses
Avatar
fred
Euh, désolé, j'ai glissé et envoyé trop vite...

Je recommence:
Me revoici encore avec mes problèmes de cellule clignotante:

Dans un module, je place le code:

Sub flash()
NextTime = Now + TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
Application.OnTime NextTime, "Flash"
End Sub

Sub StopIt()
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Flash", schedule:=False
ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic

End Sub

Pour qu'il s'exécute à l'ouverture, je place dans l'open du workbook:

Private Sub Workbook_Open()
flash
End Sub

Pour effectuer une condition (ex si il y a le texte "Nouveau" dans la
cellule a2"), je place ceci dans la feuille:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 2 Then
If (Target = "nouveau") Then
flash
Else
StopIt
End If
End If
End Sub

He, bien, cela marche un coup sur deux....
Le plus souvent, j'otiens une erreur lorsque je change les valeurs de a2, et
le déboguer s'arrête sur la ligne "Application.OnTime NextTime, "Flash",
schedule:=False"
de la fonction "stop it"...

Si quelqu'un pouvait me sortir de là.
Merci,

FRED.

3 réponses

Avatar
FxM
Bonsoir,

On ne peut pas déprogrammer quelque chose qui n'est pas (plus)
programmé (double annulation)

@+
FxM



fred wrote:

Euh, désolé, j'ai glissé et envoyé trop vite...

Je recommence:
Me revoici encore avec mes problèmes de cellule clignotante:

Dans un module, je place le code:

Sub flash()
NextTime = Now + TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
Application.OnTime NextTime, "Flash"
End Sub

Sub StopIt()
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Flash", schedule:úlse
ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic

End Sub

Pour qu'il s'exécute à l'ouverture, je place dans l'open du workbook:

Private Sub Workbook_Open()
flash
End Sub

Pour effectuer une condition (ex si il y a le texte "Nouveau" dans la
cellule a2"), je place ceci dans la feuille:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 2 Then
If (Target = "nouveau") Then
flash
Else
StopIt
End If
End If
End Sub

He, bien, cela marche un coup sur deux....
Le plus souvent, j'otiens une erreur lorsque je change les valeurs de a2, et
le déboguer s'arrête sur la ligne "Application.OnTime NextTime, "Flash",
schedule:úlse"
de la fonction "stop it"...

Si quelqu'un pouvait me sortir de là.
Merci,

FRED.





Avatar
Denis Michon
Bonjour Fred,

Essaie ceci : Voici un exemple à partir de ta procédure...

Comme je n'ai pas vraiment compris... je me suis contenté d'un exemple...


Dans un module standard :

'Variable à déclarer dans le haut du module
Public Ok As Boolean
Public LaCellule As Range
'---------------
Sub flash()
NextTime = Now + TimeValue("00:00:01")

With LaCellule.Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
DoEvents
If Ok = False Then
LaCellule.Font.ColorIndex = xlAutomatic
Exit Sub
End If
Application.OnTime NextTime, "Flash"
End Sub
'---------------
Sub StopIt()

Ok = False

End Sub
'---------------


Et dans le code module où l'action se déroule :

La cellule flashera dès que sa valeur se situera entre 5 et 10 sinon elle s'arrêtera.

Lorsque la cellule est en mode édition... cela arrête momentanément la macro...

Évidemment tu peux mettre la condition que tu désires....

'----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("A1").Address Then
If Target.Value > 5 And Target.Value < 10 Then
Set LaCellule = Target
Ok = True
flash
Else
StopIt
End If
End If

End Sub
'----------------------------


Salutations!




"fred" a écrit dans le message de news:%
Euh, désolé, j'ai glissé et envoyé trop vite...

Je recommence:
Me revoici encore avec mes problèmes de cellule clignotante:

Dans un module, je place le code:

Sub flash()
NextTime = Now + TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
Application.OnTime NextTime, "Flash"
End Sub

Sub StopIt()
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Flash", schedule:úlse
ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic

End Sub

Pour qu'il s'exécute à l'ouverture, je place dans l'open du workbook:

Private Sub Workbook_Open()
flash
End Sub

Pour effectuer une condition (ex si il y a le texte "Nouveau" dans la
cellule a2"), je place ceci dans la feuille:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 2 Then
If (Target = "nouveau") Then
flash
Else
StopIt
End If
End If
End Sub

He, bien, cela marche un coup sur deux....
Le plus souvent, j'otiens une erreur lorsque je change les valeurs de a2, et
le déboguer s'arrête sur la ligne "Application.OnTime NextTime, "Flash",
schedule:úlse"
de la fonction "stop it"...

Si quelqu'un pouvait me sortir de là.
Merci,

FRED.
Avatar
fred
Merci de ta réponse, je m'y met aussitôt et te tiens informé.
Bonne soirée.

FRED




"Denis Michon" a écrit dans le message de
news:tH1eb.80373$
Bonjour Fred,

Essaie ceci : Voici un exemple à partir de ta procédure...

Comme je n'ai pas vraiment compris... je me suis contenté d'un exemple...


Dans un module standard :

'Variable à déclarer dans le haut du module
Public Ok As Boolean
Public LaCellule As Range
'---------------
Sub flash()
NextTime = Now + TimeValue("00:00:01")

With LaCellule.Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
DoEvents
If Ok = False Then
LaCellule.Font.ColorIndex = xlAutomatic
Exit Sub
End If
Application.OnTime NextTime, "Flash"
End Sub
'---------------
Sub StopIt()

Ok = False

End Sub
'---------------


Et dans le code module où l'action se déroule :

La cellule flashera dès que sa valeur se situera entre 5 et 10 sinon elle
s'arrêtera.


Lorsque la cellule est en mode édition... cela arrête momentanément la
macro...


Évidemment tu peux mettre la condition que tu désires....

'----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("A1").Address Then
If Target.Value > 5 And Target.Value < 10 Then
Set LaCellule = Target
Ok = True
flash
Else
StopIt
End If
End If

End Sub
'----------------------------


Salutations!




"fred" a écrit dans le message de
news:%

Euh, désolé, j'ai glissé et envoyé trop vite...

Je recommence:
Me revoici encore avec mes problèmes de cellule clignotante:

Dans un module, je place le code:

Sub flash()
NextTime = Now + TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
Application.OnTime NextTime, "Flash"
End Sub

Sub StopIt()
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Flash", schedule:úlse
ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic

End Sub

Pour qu'il s'exécute à l'ouverture, je place dans l'open du workbook:

Private Sub Workbook_Open()
flash
End Sub

Pour effectuer une condition (ex si il y a le texte "Nouveau" dans la
cellule a2"), je place ceci dans la feuille:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 2 Then
If (Target = "nouveau") Then
flash
Else
StopIt
End If
End If
End Sub

He, bien, cela marche un coup sur deux....
Le plus souvent, j'otiens une erreur lorsque je change les valeurs de a2,
et

le déboguer s'arrête sur la ligne "Application.OnTime NextTime, "Flash",
schedule:úlse"
de la fonction "stop it"...

Si quelqu'un pouvait me sortir de là.
Merci,

FRED.