Classe pour la création d'un UserForm "Calendrier" transposable

Soyez le premier à donner votre avis sur cette source.

Vue 5 827 fois - Téléchargée 2 339 fois

Description

Bonjour,
Partant de ces deux fiches pratiques :
http://www.commentcamarche.net/faq/41159-vba-excel-toutes-versions-controle-calendrier-transposable
et :
http://www.commentcamarche.net/faq/43807-vba-creation-d-un-userform-dans-un-module-de-classe
j'ai fait un contrôle calendrier complet dans un module de classe.
Cela nous donne donc un contrôle calendrier transportable dans toutes les versions Excel supérieures à 97.

Pré-requis :
Vous devez au préalable (dans les options Excel) autoriser l'accès au modèle d'objet du projet VBA.
Puis, cocher les deux références (Sous VBA, menu Outils/références) :
Microsoft Forms 2.0 Object Library
Microsoft Visual Basic For Applications Extensibility 5.3.

Le code d'appel est très simple :
Public Affiche As Boolean

Sub Test_Calendar()
Dim Cal As New Calendrier
Dim maDate As Date

Affiche = True
maDate = Cal.Value(Affiche, True)
MsgBox maDate
Range("A1") = maDate
End Sub

Ce calendrier est entièrement paramétrable (couleurs, taille, présentation, etc.). Sa méthode d'appel, par .Value comporte 4 paramètres :
'Affich_Barre_Titre As Boolean, Optional Inhib As Boolean, Optional L#, Optional T#
    
    'Affich_Barre_Titre As Boolean ==> Obligatoire
        'Valeurs True ou False
        'Affiche ou non la barre de titre de l'UserForm calendrier
        'Exemple : maDate = Cal.Value(True)
    'Optional Inhib As Boolean ==> Optionnel
        'Valeurs True ou False
        'Inhibe (empêche le clic) ou déshinibe (permet le clic) sur la croix de fermeture de l'UserForm
        'Exemple : maDate = Cal.Value(True, True)
    'Optional L# ==> Optionnel
        'Valeur = Double (Numérique)
        'Valeur du Left de l'UserForm par rapport à son parent
    'Optional T# ==> Optionnel
        'Valeur = Double (Numérique)
        'Valeur du Top de l'UserForm par rapport à son parent
        'Exemple : maDate = Cal.Value(True, True, 350, 200)


Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de pijaku

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.