Date du jour pour macro calendrier

  • Initiateur de la discussion Initiateur de la discussion pilou201
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pilou201

XLDnaute Nouveau
Hello,

Besoin de votre aide pour le soucis suivant =>
J'ai créé une macro pour afficher un calendrier lorsque l'on clicque sur certaine case (afin de faciliter la saisie de date).
J'aimerai que le calendrier s'affiche sur la date du jour et non sur la date de création de la macro comme cela semble etre le cas. Par ailleurs, est-il possible de faire en sorte que le calendrier ne s'affiche que lorsque l'on selectionne la cellule concernée et non pas lorsque l'on selectionne la ligne entiere contenant cette cellule.

Le code de la macro actuelle cidessous.

Un grand merci d'avance !

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rows(Target.Row) Is Nothing Then: Exit Sub
If Not Intersect(Target, Range("C2:F50")) Is Nothing Then
Call OpenCalendar
End If
End Sub
 
Re : Date du jour pour macro calendrier

Bonjour Pilou,

peu d'infos pour t'aider... en supposant que ta macro "OpenCalendar" lance un USF où se trouve ton calendrier, regarde le code ci-dessous, à placer dans le module de l'USF :

Code:
Private Sub UserForm_Initialize()
Calendar1.Value = Date
End Sub

bon après midi
@+
 
Re : Date du jour pour macro calendrier

Merci pour le retour !
Effectivement je n'ai pas été tres précis. voici ce que j'ai aujourd'hui :

- Microsft Excel Objets / Feuil1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rows(Target.Row) Is Nothing Then: Exit Sub
If Not Intersect(Target, Range("C2:F50")) Is Nothing Then
Call OpenCalendar
End If
End Sub

- Feuilles / FrmCalendar :
le calendrier

- Module / Module1 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rows(Target.Row) Is Nothing Then: Exit Sub
If Not Intersect(Target, Range("C2:F50")) Is Nothing Then
Call OpenCalendar
End If
End Sub

Du coup je dois mettre ou exactement le code que tu proposes ? Désolé de ramer ...

Merci d'avance
 
Re : Date du jour pour macro calendrier

Re

place le code donné, dans le module "FrmCalendar", attention pas 2 événements "Initialize" pour un même objet...

A noter, vu ce que tu écris, pas sur que le code dans le module 1 serve à quelque chose.
 
Re : Date du jour pour macro calendrier

ahhhhhhhhhhh erreur de copier-collé .... c'est pas gagné ! je corrige =>

- Microsft Excel Objets / Feuil1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rows(Target.Row) Is Nothing Then: Exit Sub
If Not Intersect(Target, Range("C2:F50")) Is Nothing Then
Call OpenCalendar
End If
End Sub

- Feuilles / FrmCalendar :
le calendrier

- Module / Module1 :
Sub OpenCalendar()
frmCalendar.Show
End Sub
 
Re : Date du jour pour macro calendrier

Ca y est !!! miracle => il y avait une faute de frappe dans le code empechant l'initialisation Ã* la date du jour. Merci Pierrot pour l'aide !

Reste la question suivante ... si tu as une astuce =>
est-il possible de faire en sorte que le calendrier ne s'affiche que lorsque l'on selectionne la cellule concernée et non pas lorsque l'on selectionne la ligne entiere contenant cette cellule.

Je remet le code entier si utile pour kelkun !

- Microsft Excel Objets / Feuil1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rows(Target.Row) Is Nothing Then: Exit Sub
If Not Intersect(Target, Range("C2:F50")) Is Nothing Then
Call OpenCalendar
End If
End Sub

- Feuilles / FrmCalendar :
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Unload Me
End Sub

Private Sub CmdClose_Click()
Unload Me
End Sub

Private Sub UserForm_Click()
End Sub

Private Sub UserForm_Initialize()
If IsDate(ActiveCell.Value) Then
Calendar1.Value = DateValue(ActiveCell.Value)
Else
Calendar1.Value = Date
End If
End Sub

- Module / Module1 :
Sub OpenCalendar()
frmCalendar.Show
End Sub
 
Re : Date du jour pour macro calendrier

Re

comprends pas trop, à quoi correspond pour toi cette ligne ?

Code:
If Rows(Target.Row) Is Nothing Then: Exit Sub

d'après le code, ta macro se déclenche lorsque tu sélectionnes une cellule de la plage "C2:F50"...

Si "concernée" est une plage nommée, tu peux faire un test comme ceci

Code:
If Target.Address = Range("concernée").Address Then

bon après midi
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
358
Réponses
4
Affichages
366
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
239
Réponses
4
Affichages
342
Réponses
6
Affichages
365
Retour