Bonjour,
je vais essayer:
Tu passes en VBE
tu crées un Userform , dans l'exemple il s'appelle Userform1
Dans cet Userform tu places le calendrier
et deux boutons de commande (l'un pour Valider, l'autre pour annuler et conserver les valeurs précédentes)
Pour placer le calendrier il faut qu'il soit accessible au niveau de la boite à outils qui apparaît lorsque tu a créé ton Userform
, pour le rendre accessible: clic droite sur la boite à outils, puis clic sur contrôles supplémentaires
et cocher la ligne contrôle calendrier.
Un nouveau contrôle apparaît . Tu peux alors l'utiliser.
Ensuite:
Supposons que l'on veuille sasir une date lorsque l'on clique sur une cellule de la colonne 5 ,
il faut introduire le code suivant dans feuil1 (si c'est la feuil1 qui nous concerne):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 Then
UserForm1.Show
'ci-dessous une petite séquence supplémentaire pour placer le calendrier à un endroit acceptable
UserForm1.Move (Target.Left + 400)
End If
End Sub
Au niveau du code de calendar:
Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
End Sub
Private Sub CommandButton1_Click()
If Not IsNull(Calendar1.Value) Then Selection.Value = Calendar1.Value
UserForm1.Hide
End Sub
Private Sub CommandButton2_Click()
Selection.Value = res
UserForm1.Hide
End Sub
Private Sub UserForm_Activate()
UserForm1.Left = (Selection.Offset(0, 1).Left + 40) 'pour positionner à gauche de la colonne
If IsDate(Selection.Value) Then Calendar1.Value = CDate(Selection.Value)
res = Selection.Value
End Sub
Cordialement
Message édité par seniorpapou le 18-08-2007 à 07:42:19