Microsoft 365 Calendrier anniversaire avec prénom

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
280
Réponses
14
Affichages
537
Réponses
5
Affichages
172
Réponses
1
Affichages
109
Réponses
376
Affichages
23 K
Retour