Positionner le contrôle Calendrier sur une semaine précise
Je souhaiterais afficher le 1er jour d’une semaine donnée (par exemple : la semaine
37
de l’année2011
) sur le contrôle Calendrier (MSCal). Comment faire ?
Avant de démarrer
- Pour que tout ceci fonctionne, je suppose que vous avez déjà un formulaire avec un contrôle Calendrier appelé
cal
. Voir l’article Piloter le calendrier MSCal par des boutons pour les détails. - Vous devez aussi avoir recopié la fonction DateSemaineFR() dans un module de votre base.
Mise en place
- Ajoutez une zone de texte sur votre formulaire (celle en bas de l’illustration). Nommez-la
txtSemaine
. - Faites apparaître les propriétés de cette zone de texte, onglet Événement.
- Réglez l’événement
Après MAJ
surProcédure événementielle
, à l’aide de la liste déroulante. - Cliquez sur les points de suspension à droite de l’événement pour passer dans VBE.
- Recopiez le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 |
Private Sub txtSemaine_AfterUpdate() ' L'année en cours sur le calendrier Dim intAnnee As Integer intAnnee = Year(Me.cal.Value) ' La semaine Dim intSemaine As Integer intSemaine = Nz(Val(Me.txtSemaine), 1) ' Se déplacer sur la semaine souhaitée Me.cal.Value = DateSemaineFR(intAnnee, intSemaine) End Sub |
J’ai supposé que la semaine cherchée dépendait de l’année en cours dans le calendrier. On peut aussi ajouter une autre zone de texte pour l’année, si nécessaire.
Tester !
- Passez en mode Formulaire.
- Choisissez si nécessaire une année sur le calendrier.
- Tapez un numéro de semaine dans la zone du bas, et validez par
Entrée
.