Calendrier genre Windows Eet API Windows

Bonjour à tous;

Pour la saisie des dates début et dates fin dans mon planning et par souci de faciliter la vie aux utilisateurs, je voulais savoir:

1/ Si je peux avoir un Calendrier en cliquant sur la cellule de type date et affiche un calendrier ou je peux sélectionner une date.

2/ Peut on utiliser les API Windows avec Excel 2007/2010, si oui comment?

Mes questions ressemblent à une interrogation, Merci à tous et à ceux qui me porteront aides et conseils.

Bon courage, Hosni.

Bonsoir,

Pour un contrôle Calendar sur une feuille, il faut suivre la manipulation suivante :

Onglet Développeur

Dans le groupe Contrôle, choisir Insérer autres Contrôles( le bouton marteau et clef)

Dans la liste choisir "Contrôle Calendrier 12.0" puis cliquer sur Ok

Enfin placer le contrôle sur la feuille.

Le classeur passe alors en mode création et toutes les macros sont désactivées.

En faisant un clic droit sur le calendrier puis Objet Calendrier/Propriétés on peut paramétrer le contrôle.

Clic droit sur le contrôle puis Visualiser le code, la fenêtre VBE s'ouvre, il faut saisir quelque chose du genre :

Private Sub Calendar1_Click()
    ActiveCell.Value = Calendar1.Value
End Sub

on peut aussi conditionner son affichage :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Or Target.Address = "$C$3" Then
        Calendar1.Top = Target.Offset.Top
        Calendar1.Left = Target.Offset(0, 1).Left
        Calendar1.Visible = True ' le calendrier s'affiche uniquement en A1 et C3
    Else
        Calendar1.Visible = False
    End If
End Sub

Surtout, il faut penser à cliquer sur le bouton "Mode Création" pour réactiver les macros.

Voilà, tu sais tout ou presque.

A+

Benead

Bonjour et Merci à vous Benead,

j'essaye votre solution et je vous rend réponse

Bon courage

Hosni

Re Bonjour Benead;

j'ai essayer votre démarche mais... pouvez vous m'envoyez un classeur exemple afin de mieux comprendre

NB/ j'utilise Excel 2007 /2010

Bonsoir,

Voilà le fichier.

A+

Benead

86calendar.xlsm (20.74 Ko)

Bonjour Benead

Dés que j'ai télécharger votre fichier et essayer Voilà l'erreur qui s'affiche dés que je clic sur l'une des 2 céllule A1 / C3

calendar erreur

Bonjour,

Aurais-je oublié de te donner un information importante ?

Il faut que tu références l'ocx MSCAL : dans la fenêtre VBE, menu Outils/Références.

A+

Benead

mscal

Salut Benead;

je suis très touché par votre collaboration la procédure enfin marche très bien comptant seulement dois je à chaque fois préciser les cèllules ou dois s'afficher le calendrier???

De mon coté je vous poste en jointure et à tous ceux qui seront intéresses, une 2ème possibilité d'avoir le calendrier permanent.

ainsi que la procédure pour l'installation

Merci Benead, et à tous le monde.

70calendrier.zip (141.95 Ko)

Bonjour Hosni,

Quand j'ouvre ton classeur, il ne s'affiche pas et ton projet VBA est protégé, je ne peux donc pas regarder le code.

Dans mon exemple, le calendrier ne s'affichait qu'en cellules A1 et C3, cela dans le but d'éviter de rentrer des dates dans d'autres cellules qui sont susceptibles de contenir d'autres types d'information.

C'est cette ligne qui conditionne le fait que le calendrier soit visible ou pas :

If Target.Address = "$A$1" Or Target.Address = "$C$3" Then

Si tu ne veux pas de cette condition, il faut supprimer cette ligne, ou si tu souhaites mettre une plage particulière il faut remplacer la ligne

If Target.Address = "$A$1" Or Target.Address = "$C$3" Then

par

If Not Intersect(Target, Range("B10:C20")) Is Nothing Then

en mettant la plage souhaitée.

A+

Benead

Bonjour Benead;

Merci pour ta précieuse aide, je te tiendrai au courant de la suite, pour mon fichier c'est une macro qui s'installe en complément dans la barre de menu excel, je te joins le fichier, tu le charge et tu déclare la macro dans les complément (Options Excel).

A ton service pour plus

Bon courage, Hosni

Rechercher des sujets similaires à "calendrier genre windows eet api"