Voilà ce que ça donne en image :
Le calendrier s'affiche juste en dessous du contrôle :
Programmé sur Access 97 (et Windows 2000), ça fonctionne dans toutes les sections de formulaire (même en mode continu).
Le calendrier est en fait une InputBox modifiée, donc :
- il faut cliquer sur OK ou Annuler pour fermer la fenêtre (fenêtre dialogue)
- la fonction renvoi un texte (string)
Evolution de la v0.2 : le double-click sur un jour du calendrier suffit à valider une date.
Correction de la v0.3 : positionnement du calendrier était incorrect si sous-formulaire dans un onglet
Ajout de philben pour jours fériés : suivre ce lien
Téléchargez le code et copiez le dans un module :
ftp://ftp-developpez.com/arkham46/fi.../MCalendar.zip
Mirroir HTTP
La fonction à utiliser est DisplayCalendar avec pour paramètres :
- pCtrl : un contrôle servant à positionner le calendrier
- pText : un texte à afficher sous le calendrier
- pDefault : la date par défaut sur laquelle s'ouvre le calendrier
- pCalendarFontName : la police de caractère du calendrier (Arial, Comic sans MS , ...)
- pCalendarFontSize : la taille des caractères du calendrier
- pDisplayWeeks : mettre ce booléen à Vrai (True) pour afficher les numéros de semaine
- pTextForeColor : Couleur du texte sous le calendrier
- pTextBackColor : Couleur du fond du texte sous le calendrier
- pTextFontName : police de caractère du texte sous le calendrier
- pTextFontSize : taille des caractères du texte sous le calendrier
- pBoldDays : tableau de jours à mettre en gras : soit une date, soit la position du jour dans la semaine
--> Array(6,7) pour mettre en gras les samedi et dimanche
--> Array(6,7,#08/15/2007#) pour mettre en gras les WE et le 15 août
- pAbove : Mettre à Vrai pour afficher le calendrier au-dessus du contrôle
Exemple d'utilisation :
- Un contrôle texte TxtDetail dans le quel on veut saisir une date
- Un bouton CmbDetail qui ouvre le calendrier
(Le bouton doit être dans la même section que la zone de texte pour que le positionnement soit correct)
Une petite base d'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub CmbDetail_Click() Dim lDate As String lDate = DisplayCalendar(Me.TxtDetail, "Choisir une date" & vbCrLf & "Test 2ème ligne", _ IIf(IsDate(Me.TxtDetail), Me.TxtDetail, Now), _ "Comic sans MS", 8, True, vbBlack, _ vbYellow, "arial", 10) If Not lDate = "" Then Me.TxtDetail.Value = lDate End Sub
ftp://ftp-developpez.com/arkham46/fi...stCalendar.zip
Mirroir HTTP
Partager