Lancer la procédure flash en tant que auto-open

Résolu/Fermé
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 - Modifié par Licorne rose le 16/05/2015 à 13:00
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 - 19 mai 2015 à 09:45
Bonjour,

J'essaie de créer une macro permettant de faire clignoter une cellule. Je me sers d'un tuto dans lequel il est écrit ;
Pour créer une cellule qui clignote : Définit un nouveau style (format/style/Flash/ajouter) Applique le à la cellule que tu choisis, place le code suivant dans un module de feuille et lance la procédure flash en tant que auto-open.

Que veut dire
lance la procédure flash en tant que auto-open ?

Quand je lance la macro, on me dit "impossible de lancer la procédure en mode arrêt".


Le code que j'ai recopié dans une macro de feuille est le suivant :

Dim NextTime As Date
--------------------

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()

Application.OnTime NextTime, "Flash", schedule:=False

ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic
End Sub
--------------------

Private Sub Worksheet_Activate()

End Sub
--------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub



Y a-t-il quelque chose qui cloche ?


Merci



A voir également:

18 réponses

Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 mai 2015 à 13:01
Bonjour,

on n'a pas la macro en question mais ce n'est pas comme cela que ça fonctionne.
que veux tu faire exactement et sur quel critère veux tu déclencher la procédure
peux tu mettre ton fichier à notre disposition avec ce lien s'il te plait
https://www.cjoint.com/
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
16 mai 2015 à 13:07
Bonjour Mike,

Merci de prendre la peine de me répondre.
Je veux créer une macro qui fasse clignoter la cellule A1.
Pour ce faire j'applique cette méthode que j'ai trouvée sur un autre site :

Comment faire clignoter du texte dans une cellule ?

Sans macro, pas possible dans excel...
Avec une macro de Bill Manville : Pour créer une cellule qui clignote : Définit un nouveau style (format/style/Flash/ajouter) Applique le à la cellule que tu choisis, place le code suivant dans un module de feuille et lance la procédure flash en tant que auto-open.
Le texte clignote entre rouge et blanc. Dim NextTime As Date

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()

Application.OnTime NextTime, "Flash", schedule:=False

ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic
end sub

J'ai créé le style de cellule Flash et l'ai appliqué à A1.
Voici mon fichier xlsm :
https://www.cjoint.com/c/EEqnwplwCRt
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 mai 2015 à 14:02
Re,

déjà dans le Visual Basic efface tes codes qui ne sont pas ou il faut, toujours dans le visual basic clic sur Insertion et Module ce qui va générer un page vierge dans laquelle tu va coller ce code

Option Explicit

Dim Temps As Variant

Sub Flash()
Temps = Now + TimeValue("00:00:01")
Application.OnTime Temps, "Flash"
With ThisWorkbook
With .Sheets("Feuil1").Range("A1")
.Font.ColorIndex = IIf(.Font.ColorIndex = 2, 3, 2)
End With
End With
End Sub

Sub StopFlash()
On Error Resume Next
Application.OnTime Temps, "Flash", , False
With ThisWorkbook
.Sheets("Feuil1").Range("A1").Font.ColorIndex = xlAutomatic
End With
End Sub


en suite précise moi comment tu veux lancer le clignotement de la cellule A1 Feuil1
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
16 mai 2015 à 14:19
Encore merci, je l'ai fait

J'ai créer un style Flash pour A1, j'ai bien fait.
Ensuite je n'ai pas de but précis si ce n'est celui de savoir me servir des macros, ça pourrait me servir pour trouver du travail.
Par exemple j'aimerais que
_ A1 clignote dès qu'on ouvre la feuille où elle est (Feuil1),
_ A1 clignote quand on tape un raccourci (ex : ctrl-maj-c),
_ A1 clignote quand on passe le curseur dessus, si c'est possible.
C'est peut-être beaucoup demander...

Deux choses me laissent perplexe dans ton code à la ligne
.Font.ColorIndex = IIf(.Font.ColorIndex = 2, 3, 2)
1
il ne faudrait pas dire Truc.Font ? Comment Excel sait-il de quel Font on parle ?
2
Tu es sûr de IIf ? Ce n'est pas plutôt If ?
Enfin, que veut dire Explicit ?

Excuse-moi pour toutes ces questions...
0

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

Posez votre question
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 mai 2015 à 14:51
Re,

Je vais commencer par la fin de ton post,
Option Explicit est pour obliger Excel à être strict et fonctionner que si les variables sont correctement déclarées et éviter les blocages des codes mal orthographiés.

iif me permet de basculer de l'index couleur blanc à rouge puis retourner à blanc IIf(.Font.ColorIndex = 2, 3, 2) et donc écourter le code avec deux if
donc je persiste c'est bien iif

_ A1 clignote quand on passe le curseur dessus, si c'est possible
Non, ce qui est possible est de déclencher le code lorsque tu clic sur la cellule

_A1 clignote quand on tape un raccourci (ex : ctrl-maj-c)
c'est possible à condition de déclarer le lancement du code lors de la création

_ A1 clignote dès qu'on ouvre la feuille où elle est (Feuil1)
ça c'est tout à fait possible

clic droit sur l'onglet de ta Feuil1/Visualiser le code et colle ce code sans toucher aux code que tu as collé dans le module précédemment

Private Sub Worksheet_Activate()
Call Flash
End Sub

Private Sub Worksheet_Deactivate()
Call StopFlash
End Sub
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
16 mai 2015 à 15:10
Voilà, je l'ai fait mais il n'y a rien qui clignote...
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 mai 2015 à 15:58
Re,

as tu écrit quelque chose en A1 Feuil1
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
16 mai 2015 à 16:04
Ouhou Mike stp, tu ne m'oublies pas ? Il doit y avoir un tout petit truc qui manques.
Je récapitule où j'en suis.

1
J'ai créé un style flash que j'ai attribué à la cellule A de Feuil1.

2
J'ai créé un module 1 où j'ai mis ton premier source.

3
J'ai mis ton second source dans visualiser le code de Feuil1

4
J'ai attribué un raccourci-clavier au premier source.

Et rien de clignote, que ce soit quand je tape le raccourci-clavier ou quand j'ouvre Feuil1.
Il n'y a pas de message d'erreur non plus.

Mais un truc qui me semble bizarre :
Quand je double clique sur Module 1 dans le VBE, je vois deux sources, celui que j'ai écrit pour module1 et celui que j'ai écrit pour Feuil1
Quand je double clique sur Feuil1 dans le VBE, je vois apparaître ces mêmes deux sources.
Il ne devrait pas y en avoir un dans Module1 et un dans Feuil1?
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
16 mai 2015 à 16:57
Mille excuses Mike !!!!
Je n'avait rien écrit, quel bourrin !!!

Je pensais au clignotement du fond de la cellule... mais si j'écris un truc, ça clignote, oui.

Mille mercis.

Et si je veux que ce soit le remplissage qui clignote, je mets quoi à la place de Font ?

Un truc m'intrigue toujours : comment excel sait-il de quelle cellule il faut faire clignoter la fonte avec
.Font.ColorIndex
Il ne faudrait pas écrire selection.Font ou quelque chose comme ça ?

(je sais que non puisque ton source fonctionne, mais ça m'intrigue...)
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 mai 2015 à 17:25
Re,

Télécharge ce fichier exemple sur lequel j'ai ajouté deux bouton pour lancer et arrêter le clignotement de la cellule A1 Feuil1 qui se déclenche également lorsqu'on active le Feuil1

https://www.cjoint.com/c/EEqrLV4p3TJ

par contre si le clignotement ne se fait pas il y a autre chose sur ton ordi que je t'expliquerais plus tard
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
17 mai 2015 à 09:46
Re,

Je remarque que tu lances des discussions en chaine ce qui est à l'honneur du forum Comment ça marche, mais serait il possible de terminer chaque discussion en passant le statut en résolu ou nous confirmer que tes attentes sont satisfaites avant d'en lancer une nouvelle
Je t'en remercie
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
17 mai 2015 à 16:07
Bonjour Mike,

Mais j'en ferme, des discussions, je les marque comme résolues.

Ici je ne l'ai pas fait car peut-être que quelqu'un me dira ce que veut dire
"lance la procédure flash en tant que auto-open".

Il est vrai que j'ai ouvert plusieurs discussions récemment (dont une partie sont "résolues"). Je m'entraîne à faire des macros dans l'espoir que ça m'aidera à trouver un boulot, et les macros, ce n'est pas facile à débuter !
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
17 mai 2015 à 17:02
Re,

que veux tu dire par auto open:

lancement automatique dès l'ouverture du fichier

lancement en fonction d'une valeur dans une cellule

lancement en fonction d'un changement dans une cellule
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
17 mai 2015 à 17:14
Ben je n'en sais rien... j'ai juste lu ça et ça me laisse perplexe :
"Pour créer une cellule qui clignote : Définit un nouveau style (format/style/Flash/ajouter) Applique le à la cellule que tu choisis, place le code suivant dans un module de feuille et lance la procédure flash en tant que auto-open."
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
17 mai 2015 à 17:54
Re,

Pour ma part je ne vois pas, il est possible de lancer le code de diverses façons, à l'ouverture du fichier, au changement de feuille, lors de saisies, lors de déplacement, par bouton, liste de validation etc ...
mais tes explications sont floues et (format/style/Flash/ajouter) heuuu?
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
19 mai 2015 à 09:17
(format/style/Flash/ajouter), c'est ce que j'avais lu. A priori cela voulait dire créer le style de cellule flash puis l'attribuer à une cellule.

Bon, je retiens ce que tu dis :
Pour ma part je ne vois pas, il est possible de lancer le code de diverses façons, à l'ouverture du fichier, au changement de feuille, lors de saisies, lors de déplacement, par bouton, liste de validation etc ...

L'énoncé que j'avais n'était pas clair mais je tâtonnerai avec tes pistes.

Merci pour tout, Mike.
Le principal est que tu m'aies montré comment faire clignoter une cellule, j'ai mis "MIKE" dans la cellule.

Mille mercis et, évidemment, je mets le sujet en résolu !

Excellente semaine à toi.
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
Modifié par Mike-31 le 19/05/2015 à 09:31
Re,

pour lancer le clignotement de la cellule A1 de la Feuil1 dès l'ouverture du fichier, il faut coller ces codes dans la Thiswokbook du Visual

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopFlash
End Sub

Private Sub Workbook_Open()
Call Flash
End Sub


si tu veux lancer le clignotement à partir de la saisie dans la cellule comme tu as pris Mike, colle ce code dans les propriétés de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
If [A1] = "Mike" Then Call Flash
If [A1] <> "Mike" Then Call StopFlash
End Sub

Bon courage et bonne change pour la suite, peut être à une prochaine fois ou si tu passes près de Toulouse
Cordialement
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Licorne rose Messages postés 997 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 18 janvier 2024 227
19 mai 2015 à 09:45
Merci mille fois, Mike, je vais le faire, demain peut-être car je suis occupé aujourd'hui.
Merci pour ton aide.
0