date dans liste déroulante

Le
bibiche
Bonjour à tous,
J'aimerais avoir la possibilité d'afficher une calendrier qui pourrait
évoluer en affichant mois suivant ou mois précédent. Jusque-là, je sais faire
e n utilisant la barre outils Contrôle et la fonction Contrôle calendrier.
Ensuite, j'aimerais pouvoir cliquer sur une date et que le jour choisi
s'affiche au format date (jj/mm/aaaa) dans une cellule hors du calendrier.
Merci de me renseigner. Peut-être avez-vous une autre solution que la barre
outils Contrôle.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5383511
Il y a cette barre d'outils publiée ici sous la plume de Michel Perron
qui peut être très intéressante :

'--------------------------
Sub AddCalendar()
Application.ScreenUpdating = False
Call MenuDelete
Dim CmdBar As CommandBar, i As Integer
Set CmdBar = Application.CommandBars.Add("Calendar", msoBarTop)
With CmdBar.Controls.Add(Type:=msoControlComboBox)
.Style = msoComboNormal: .Width = 50
For i = 1980 To 2020: .AddItem i: Next i
.Text = Year(Date)
.OnAction = ThisWorkbook.Name & "!UpDateDays"
End With
UpDateDays
CmdBar.Visible = True
Set CmdBar = Nothing
End Sub

Private Sub UpDateDays()
Application.ScreenUpdating = False
Dim m%, a%, j%
With Application.CommandBars("Calendar")
a = CInt(.Controls(1).Text)
Do While .Controls.Count > 1
.Controls(.Controls.Count).Delete
Loop
For m = 1 To 12
With .Controls.Add(msoControlPopup)
.Caption = Format(DateSerial(1, m, 1), "mmmm")
For j = 1 To Day(DateSerial(a, m + 1, 0))
With .Controls.Add
.Caption = Format(DateSerial(a, m, j), "dd/mm/yy - dddd")
.OnAction = ThisWorkbook.Name & "!DateSelect"
.Style = msoButtonCaption
End With
Next j
End With
Next m
End With
End Sub

Sub MenuDelete()
On Error Resume Next
Application.CommandBars("Calendar").Delete
End Sub
'--------------------------
Private Sub DateSelect()
Dim a%
With Application
a = CInt(.CommandBars("Calendar").Controls(1).Text)
ActiveCell.NumberFormat = "dd/mm/yyyy"
ActiveCell = DateSerial(a, .Caller(2) - 1, .Caller(1))
End With
End Sub
'--------------------------





"bibiche"
Bonjour à tous,
J'aimerais avoir la possibilité d'afficher une calendrier qui pourrait
évoluer en affichant mois suivant ou mois précédent. Jusque-là, je sais faire
e n utilisant la barre outils Contrôle et la fonction Contrôle calendrier.
Ensuite, j'aimerais pouvoir cliquer sur une date et que le jour choisi
s'affiche au format date (jj/mm/aaaa) dans une cellule hors du calendrier.
Merci de me renseigner. Peut-être avez-vous une autre solution que la barre
outils Contrôle.
Publicité
Poster une réponse
Anonyme