Clignotement cellules

Résolu
bonjour,

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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. Re,

    je viens de regarder les formules, tu pourrais les alléger, exemple la formule que tu as en A5
    =SI(MOIS(DATE(An;COLONNE($A1:$IV12);LIGNE($A1:$IV31)))=COLONNE($A1:$IV12);DATE(An;COLONNE($A1:$IV12);LIGNE($A1:$IV31));"")

    tu pourrais l'écrire
    =SIERREUR((LIGNE()-4&"/"&COLONNE()&"/"&An)*1;"")

    ensuite incrémente vers la droite jusqu'à la colonne L, puis incrémente la ligne jusqu'à la ligne 35

    éventuellement sécurise le tableau en matriciel
    0
    1. je ne vois pas le fichier qui correspond ? mais par contre j'ai laissé sur le forum un autre post concernant les classeur. Peux tu y jeter un oeil
      0
    2. Bonsoir eric2027,
      Pas compris, désolé.
      Le Pingou
      0
    3. Je vais mettre fin à ce post parce que je ne comprends plus rien

      Par contre, j'ai laissé un post sur les copies de classeur, si vous pouviez m'aider ce serait super gentil de votre part, parce que j'ai beau essayé de trouver une solution, sur le Forum CCM, mais je ne trouve pas mon bonheur

      Par avance, merci à vous Tous

      Cordialement
      0
    4. Bonsoir eric2027,
      Je vais mettre fin à ce poste....
      Je vous fais remarquer que c'est le poste de CALI et dans ce cas ce n'est pas à vous dit mettre fin.
      Salutations
      Le Pingou
      0
    5. Mille excuses, je n'avais pas fait attention
      0
  2. Re,

    Bizarre, que tu n'ai pas le son, fait un clic droit sur le fichier Happy_Birthday.mp3 et Lecture et dis moi si le lecteur média fonctionne
    0
    1. oui ça fonctionne sur lecteur
      0
    2. Re,

      Je crois avoir cerné le problème, et tu n'as pas lu mes explications.
      ce qui conditionne la lecture du fichier son est la présence d'un commentaire dans la cellule concernée, donc pour tester aujourd'hui 02/09/2015 il suffit de faire un clic droit sur la cellule concernée/Insérer un commentaire, si tu veux que le son se lance demain, il suffit de créer un commentaire dans la cellule du 03/09/2015 reprend mes explications post 27
      0
    3. C'est génial, merci
      0
  3. bonjour,

    C'est fabuleux, sincèrement merci pour votre professionnalisme et à bientôt.
    0
    1. 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
      0
      1. Il me demande 'le fichier doit se trouver dans le même répertoire, ou spécifier son emplacement'
        0
      2. il faut laisser le fichier Excel et le fichier audio dans le même répertoire, dézippe simplement les dossier il tout devrait fonctionner
        0
      3. 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
        0
      4. J'ai fait ce que tu m'as dit, je n'ai plus de message mais je n'ai pas de son
        0
    2. Contributeur
      Bonjour,

      En attendant celui de Mike_31

      http://www.cjoint.com/c/EHFqISKbGRQ
      0
      1. ok, je vais voir mais pour la musique pas possible, pas de carte son, dommage.
        Merci
        0
        1. 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
          0
          1. Salut Mike,

            J'aimerais pousser cette curiosité avec la musique, ce serait trop cool
            Cordialement
            0
          2. c'est la rentrée et donc un peu bousculé, mais je monte un fichier que je mettrai dans la discussion rapidement
            0
          3. ok c'est super sympa de ta part
            0
        2. bonjour à vous deux et encore un grand merci.

          Je vais tester ce matin et vous tiens au courant.

          Cordialement,
          0
          1. Contributeur
            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
            0
            1. 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

              0
              1. bonjour,

                Sincèrement merci, je l'ai testé et c'est génial.
                Merci à tous les 2

                Cordialement,
                0
                1. Contributeur
                  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
                  0
                  1. 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,
                    0
                    1. Contributeur
                      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
                      0
                      1. Salut Le Pivert,

                        son lien est bon par contre les dates se trouvent dans des commentaires sur un calendrier, je n'ai pas eu le temps de décortiquer un code que je verrais pour ma part dans la soirée, je ne pense pas évident !
                        Cordialement
                        0
                      2. Contributeur
                        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
                        0
                    2. http://www.cjoint.com/c/EHBlKyOi3Ai

                      Merci pour votre coopération.
                      0
                      1. 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/
                        0
                        1. 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
                          0
                          1. Contributeur
                            Bonjour,

                            Voici un exemple:

                            http://www.cjoint.com/c/EHBjkGUh1GQ
                            0
                            • 1
                            • 2