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

Soyez le premier à donner votre avis sur cette source.

Vue 6 133 fois - Téléchargée 2 473 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

Commentaire

Pepere1947_1968
Messages postés
1
Date d'inscription
mardi 19 février 2019
Statut
Membre
Dernière intervention
19 février 2019
-
Bonjour, la macro fonctionne très bien. Étant un débutant j'ai tenté d'agrandir le calendrier car la dernière ligne des dates s'affiche au 3/4, de plus je voudrais que les semaines débutent par le dimanche. Pourriez-vous m'indiquer comment procéder j'ai cherché le UserForm mais ne le trouve pas. Merci

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.