Bonsoir le Forum,
Je débute sur les modules de classe.
J'essaie de créer l'applicatif mentionné dans le passsionnant tutoriel de Pierre Fauconnier à ce sujet.
Tutoriel de Pierre Fauconnier sur les modules de classe
Difficulté au paragraphe IV-E-2-b-ii.
Une erreur de compilation apparaît suite à un conflit entre le code de l'Userform et le module de Classe.
A noter. Une ambiguïté a été levée par Pierre Gonzales dans les commentaires sur ce tutoriel qui semble, sauf ereur, en rapport avec ma difficulté.
Partie du code du module de classe sur ce point
Code Userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Event AnniversaireDans10jours(ByVal DateAnniversaire As Date) .................... Property Let DateNaissance(DateNaissance As Date) ' Propriété en écriture Dim DateAnniversaire As Date mDateNaissance = DateNaissance ' Calcul de la date anniversaire pour l'année en cours DateAnniversaire = DateSerial(Year(Date), Month(DateNaissance), Day(DateNaissance)) If DateAnniversaire >= Date And DateAnniversaire <= Date + 10 Then RaiseEvent AnniversaireDans10jours(DateAnniversaire) End Property
La ligne surlignée pour ce conflit (erreur de compilation) est la première de la procédure évènementielle de "oContact_Anniversaire"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Option Explicit Dim WithEvents ocontact As cContact Private Sub Btn_Contact_Click() Set ocontact = New cContact With ocontact .Prenom = "Manon" .DateNaissance = DateSerial(1992, 3, 20) End With End Sub Private Sub oContact_AnniversaireDans10jours(DateAnniversaire) MsgBox "L'anniversaire de " & ocontact.Prenom & " a lieu dans les 10 prochains jours et se fêtera le " _ & Format(DateSerial(Year(Date), Month(ocontact.DateNaissance), Day(ocontact.DateNaissance)), "d mmmm yyyy") End Sub
Le message d'erreur indique
"La description de la procédure ne correspond pas à la description de l'évènement ou de la procédure de même nom".
Je cherche sans succès.
Où est mon erreur? Que faut-il écrire? Et pourquoi?
Merci à tous.
Partager