|
|
|
|
Bonjour,
Je suis en train de réaliser un petit fichier sous excel 2007.
J'ai une colonne destinée à accueillir la date de mise en service d'un véhicule.
Pour simplifier et rendre ergonomique l'utilisation de ce fichier aux futurs utilisateurs, je voudrais qu'au moment où ils viennent dans la cellule pour saisir la date, apparaisse un calendrier qui leur permet de cliquer dessus, pour mettre la date dans celle-ci, plus sympa quand même...
Problème je suis nul en informatique !
J'ai bien essayé à travers les divers forums de bidouiller quelque chose sur VBA mais je n'arrive à rien ; quelqu'un pourrait-il gentiment m'expliquer comment on fait dans le détail svp avec les codes et les boutons sur lesquels cliquer.... ????
Je remercie ce super héros d'avance...
Configuration: Windows Vista
Bonsoir,
|
Re,
|
Merci Eriiic d'avoir répondu, c'est toujours un plaisir de voir qu'on peut trouver de l'aide sur Internet alors que le responsable informatique de son entreprise ne prend même pas le temps de vous expliquer...bref...
|
Bonjour et merci de votre réponse
|
Bonjour tout le monde,
|
Bonjour Eriiic,
|
Pas de soucis pijaku, tu fais bien.
|
Ca y est ça marche !!!! Merci de votre patience et de votre aide...sans vous j'aurais abandonné !
|
Il faut modifier un peu la macro (attention il y a 1 ligne en moins, recopier l'ensemble) et en ajouter une autre.
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' si la sélection sur la feuille change (target est la référence de la sélection)
If Target.Column <> 3 Or Target.Row < 2 Or Target.Cells.Count > 1 Then
'si la colonne <>3 (C) ou la ligne <2 ou la sélection fait plus d'1 cellule
Calendar1.Visible = False
'alors on cache le calendrier
Exit Sub
Else
'sinon
Calendar1.Top = Target.Offset(1, 0).Top + 2
' aligner le calendrier avec le haut de la cellule en dessous
Calendar1.Left = Target.Left + 10
' l'aligner à gauche de la cellule
'Calendar1.LinkedCell = Target.Address
' mettre la cellule liée au contrôle sur la cellule sélectionnée
If IsDate(Target.Value) Then
'si la cellule sélectionnée contient une date
Calendar1.Value = Target.Value
' la récupérer
Else
' sinon mettre la date du jour
Calendar1.Value = Date
End If
Calendar1.Visible = True
'afficher le calendrier
End If
End Sub
eric edit : j'ai remodifier un peu le code pour décaler le calendrier et pouvoir sélectionner les cellules en dessous qui étaient masquées |
Eric, encore une question,
|
Remplace la 1ère ligne par :
|