Microsoft 365 Calendrier anniversaire avec prénom

frasylest

XLDnaute Nouveau
Bonjour à tous, j'ai réussi à créer un calendrier perpétuel pour les anniversaires. Je voudrais savoir, si à la place des dates anniversaires, on peut faire apparaître le prénom de la personne. Ci/joint mon tableau, merci d'avance, bonne journée Sylvain
 

Pièces jointes

  • CALENDRIER ANNIVERSAIRES.xlsm
    18.1 KB · Affichages: 21
Solution
Bonjour Frasylest,
Un essai en PJ avec :
VB:
=SIERREUR(INDEX(Anniversaire!$A$2:$A$47;EQUIV(DATE(REF_ANNEE;COLONNE(1:12);LIGNE(1:31));Anniversaires;0));DATE(REF_ANNEE;COLONNE(1:12);LIGNE(1:31)))
et cette MFC :
Code:
=ESTNUM(A3)=FAUX

frasylest

XLDnaute Nouveau
Bonjour Frasylest,
Un essai en PJ avec :
VB:
=SIERREUR(INDEX(Anniversaire!$A$2:$A$47;EQUIV(DATE(REF_ANNEE;COLONNE(1:12);LIGNE(1:31));Anniversaires;0));DATE(REF_ANNEE;COLONNE(1:12);LIGNE(1:31)))
et cette MFC :
Code:
=ESTNUM(A3)=FAUX
Merci beaucoup Sylvanu, tu es très rapide et super bon, c'est exactement ce que je voulais, merci encore bonne journée
 

job75

XLDnaute Barbatruc
Bonjour frasylest, sylvanu,

Avec plusieurs anniversaires sur une même date voici une solution VBA :
VB:
Private Sub Worksheet_Activate()
Worksheet_Calculate 'lance la macro
End Sub

Private Sub Worksheet_Calculate()
Dim P As Range, Q As Range, nlig&, c As Range, i As Variant, x$
Set P = [A3:L33]
Set Q = Sheets("Anniversaire").[A1].CurrentRegion
nlig = Q.Rows.Count
Application.ScreenUpdating = False
P.ClearComments 'RAZ
For Each c In P
    i = Application.Match(c.Value2, Q.Columns(2), 0)
    If IsNumeric(i) Then
        x = ""
        For i = 2 To nlig
            If Q(i, 2) = c Then x = x & vbLf & Q(i, 1)
        Next i
        c.AddComment Mid(x, 2) 'ajoute un commentaire
        c.Comment.Shape.TextFrame.AutoSize = True 'ajuste les dimensions
    End If
Next c
End Sub
Des commentaires sont créés dans les cellules concernées quand le tableau est recalculé.

A+
 

Pièces jointes

  • CALENDRIER ANNIVERSAIRES(1).xlsm
    30 KB · Affichages: 39

frasylest

XLDnaute Nouveau
Bonjour frasylest, sylvanu,

Avec plusieurs anniversaires sur une même date voici une solution VBA :
VB:
Private Sub Worksheet_Activate()
Worksheet_Calculate 'lance la macro
End Sub

Private Sub Worksheet_Calculate()
Dim P As Range, Q As Range, nlig&, c As Range, i As Variant, x$
Set P = [A3:L33]
Set Q = Sheets("Anniversaire").[A1].CurrentRegion
nlig = Q.Rows.Count
Application.ScreenUpdating = False
P.ClearComments 'RAZ
For Each c In P
    i = Application.Match(c.Value2, Q.Columns(2), 0)
    If IsNumeric(i) Then
        x = ""
        For i = 2 To nlig
            If Q(i, 2) = c Then x = x & vbLf & Q(i, 1)
        Next i
        c.AddComment Mid(x, 2) 'ajoute un commentaire
        c.Comment.Shape.TextFrame.AutoSize = True 'ajuste les dimensions
    End If
Next c
End Sub
Des commentaires sont créés dans les cellules concernées quand le tableau est recalculé.

A+
Bonsoir Jobs75,
Effectivement, je n'avais pas pensé à cette solution, merci pour votre intérêt à mon sujet. Les deux solutions sont ce que je voulais, maintenant le plus dur ... c'est de choisir celle qui me conviendra le mieux ... et pourquoi pas une pour les anniversaires et l'autre pour les fêtes, merci encore, bonne soirée, cordialement Sylvain
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin