Clignotement cellules
Résolueric2027 Messages postés 296 Statut Membre -
J'ai un calendrier avec des dates d'anniversaire à souhaiter pour lesquelles une macro me les mets en couleur et j'aimerais que celles ci clignotes quand c'est le jour J.
Par avance, merci pour votre aide.
Cordialement,
23 réponses
- 1
- 2
Une mise en forme automatise le coloriage des dates d'anniversaire dans le calendrier par une macro et prévoit le clignotement des cellules le jour J pour attirer l'attention. Des propositions consistent à tester une solution existante et à adapter le classeur selon les besoins, en utilisant une mise en forme conditionnelle pour clignoter la cellule ou le commentaire le jour voulu. Des suggestions évoquent aussi de vérifier les liens de code et d'assurer que le fichier est dans le même répertoire, ou que son emplacement est précisé, et d'envisager l'affichage du commentaire avec une musique. D'autres possibilités évoquées incluent la synchronisation sur la date par une macro et une option de clignotement, bien que la musique ne soit pas faisable sans carte son.
-
-
Bonjour,
Regarde cette discussion pour te mettre sur la voie
https://forums.commentcamarche.net/forum/affich-32151851-creer-une-macro-pour-declencher-clignotement-de-cellules?page=2
-
Bonjour CALI,
Je pense que vous devriez regarder en détail la proposition de Mike-31 (salutations) et là il vous suffira d'adapter le classeur selon vos besoin, tout y est et de belle manière.
-
Bonjour,
Voici un exemple:
http://www.cjoint.com/c/EHBjkGUh1GQ
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
re,
Désolée mais je n'arrive pas adapter cette macro à mon fichier. Je sais, je ne suis pas très douée , aussi j'ai vraiment besoin d'aide.
Merci -
Re,
si tu commençais par mettre ton fichier anonymisé à notre disposition il serait peut être possible d'adapter un code
pour joindre ton fichier à partir de ce lien
https://www.cjoint.com/ -
-
Ton lien est inactif. Tu devrais t'inscrire, c'est gratuit. Tu recevrais des messages quand on te répond. Les liens sont en bleus et cliquables.
voici un autre exemple qui s'adapte à tous les classeurs:
Tu fais Alt F11 pour accéder à l'éditeur.
Les codes sont dans module1 et ThisWorkbook
http://www.cjoint.com/c/EHBpDuRogDQ
-
-
Salut Mike-31,
Je n'arrive pas a activer le lien.
Un début de piste pour les commentaires:
Option Explicit Private Sub Workbook_Open() Dim PremCell As String Dim Cell As Range Dim maligne As String Dim madate As Date Dim com As String madate = Format(Date, "d/mm/yyyy") Set Cell = Cells.Find(madate) On Error Resume Next If Not Cell Is Nothing Then PremCell = Cell.Address maligne = Cell.Address(RowAbsolute:=False) 'donne la colonne et le numéro de ligne par ex: $G16 Range(maligne).Select 'sélectionne la cellule ou se trouve la date com = ActiveCell.Comment.Text End If If com = "" Then Else InitFlash End If End Sub
Cdlt
-
-
-
bonjour et merci à tous les deux pour votre patience.
Je vais essayer de me débrouiller avec votre envoi mais par contre si vous arrivez à corriger mon fichier, ce serait géniaL
Cordialement, -
Voilà le classeur modifié. J'ai mis un anniversaire bidon pour aujourd'hui, pour voir le bon fonctionnement:
http://www.cjoint.com/c/EHCjPvWkD5Q
Mike-31, il y a certainement moyen de simplifier le code.
Il ne reconnaissait pas les numéros de colonne!
Si tu peux le regarder
Cordialement à vous 2
-
-
Re,
Excuse le retard, problème de connexion, merci à Pivert d'avoir assuré le suivi, mais si tu repasses par là
tu pourrais faire simple en affichant le commentaire du jour courant , ou si tu tiens au clignotement une autre variante, faire clignoter le commentaire
pour tester coller ce code dans un module et associer le code Comman et ArretClign à un bouton ou dans la Thiswokbook pour un lancement automatique
Option Explicit
Dim Timer As Date
Dim Cell As Variant
Sub Comman()
For Each Cell In Range("A5:L35")
If Not (Cell.Comment Is Nothing) And Cell = Date Then 'MsgBox Cell.Comment.Text
Cell.Select
Clign
End If
Next
End Sub
Sub Clign()
On Error Resume Next
Timer = Now() + TimeValue("00:00:01") 'le temps du clignotement
Application.OnTime Timer, "Clign"
'Affiche l'alerte ou la fait disparaître (alternativement)
With ThisWorkbook
'Commentaire
With .Sheets("Calendrier").Range(ActiveCell.Address)
.Comment.Visible = Not .Comment.Visible
End With
End With
End Sub
Sub ArretClign()
On Error Resume Next
Application.OnTime Timer, "Clign", , False
'Cache l'alerte
Sheets("Calendrier").Range(ActiveCell.Address).Comment.Visible = False
End Sub
-
Bonne approche, merci pour cette solution.
J'ai modifié pour approcher de la demande:
dans un module:
Option Explicit Dim Timer As Date Dim Cell As Variant Sub Comman() For Each Cell In Range("A5:L35") If Not (Cell.Comment Is Nothing) And Cell = Date Then 'MsgBox Cell.Comment.Text Cell.Select Clign End If Next End Sub Sub Clign() On Error Resume Next Static i i = i + 1 'tant que le nombre de clignotements choisi n'est pas atteint '(ici 5) on continue If i <= 5 Then Timer = Now() + TimeValue("00:00:01") 'le temps du clignotement Application.OnTime Timer, "Clign" 'Affiche l'alerte ou la fait disparaître (alternativement) With ThisWorkbook 'Commentaire With .Sheets("Calendrier").Range(ActiveCell.Address) .Comment.Visible = Not .Comment.Visible End With End With Else Application.OnTime Timer, "Clign", , False 'Cache l'alerte Sheets("Calendrier").Range(ActiveCell.Address).Comment.Visible = True i = 0 End If End Sub
et dans la feuille:
Option Explicit Dim f, ligne, cmt Dim mois, jour Private Sub Worksheet_Activate() Application.ScreenUpdating = False [A5:L35].ClearComments [A5:L35].Interior.ColorIndex = xlNone Set f = Sheets("evenement") For ligne = 2 To f.[A65000].End(xlUp).Row cmt = f.Cells(ligne, 1) & " " & f.Cells(ligne, 2) & " " & f.Cells(ligne, 4) mois = Month(f.Cells(ligne, 3)) jour = Day(f.Cells(ligne, 3)) With Sheets("calendrier").Cells(jour + 4, mois) If .Comment Is Nothing Then .AddComment .Comment.Text Text:=cmt .Comment.Shape.TextFrame.AutoSize = True .Interior.ColorIndex = 3 .Comment.Visible = True End With Next ligne Comman 'lance le clignotement Application.ScreenUpdating = True End Sub
Cordialement -
bonjour à vous deux et encore un grand merci.
Je vais tester ce matin et vous tiens au courant.
Cordialement, -
Re,
Merci de ton retour, il est également possible de piloter dans le même code la mise en forme conditionnelle, et au choix faire clignoter la cellule ou le commentaire, ou clignoter la cellule et faire apparaitre le commentaire de la cellule concernée et si tu veux pousser la curiosité faire jouer une musique comme Happy_Birthday
-
-
Bonjour,
En attendant celui de Mike_31
http://www.cjoint.com/c/EHFqISKbGRQ
-
-
Re,
voilà le fichier je pense opérationnel, n'hésitez pas à faire remonter vos remarques.
actuellement le fichier ne contient pas de commentaire, il suffit d'en saisir aux dates souhaitées. Actuellement le fichier audio est prévu pour relever les anniversaires.
la procédure se lance automatiquement à l'ouverture du fichier, au changement d'onglet, au changement de date ou par l'unique bouton qui change d'aspect en fonction de la procédure en cours
dans tous les cas la procédure peut être arrêtée avec le bouton ou en quittant la feuille
le code s'exécute en partie ou en totalité si la cellule du jour contient un commentaire
télécharger le dossier ZIP puis sortir le dossier Anniv avant de tester le fichier Classeur2 que vous pouvez renommer
https://www.cjoint.com/c/EIci1gbUZjj-
-
-
-
Re,
dans le fichier dossier tu as deux fichiers, le fichier Excel nommé Classeur2.xlsm et le fichier audio nommé Happy_Birthday.mp3 il est impératif que les deux fichiers soient au même niveau dans arborescence, autrement dit dans le même répertoire ou il faudra revoir l'adresse du fichier et ce message dénonce cette incohérence.
colle les deux fichiers au même endroit et tout doit fonctionner, la preuve Cali n'a eu aucun problème -
-
- 1
- 2