Her er lidt at begynde med:
Private Sub Calendar1_Click()
Dim dato As Date
With Me.Calendar1
dato = .Day & "-" & .Month & "-" & .Year
End With
Me.ComboBox1.AddItem Format(dato, "dd-mm-yy")
Me.ComboBox1.DropDown
Me.Calendar1.Visible = False
End Sub
Private Sub ComboBox1_Click()
Me.Calendar1.Visible = True
End Sub
Private Sub UserForm_initialize()
Me.Calendar1.Visible = False
End Sub
Private Sub userform_activate()
Me.ComboBox1.AddItem Format(Now, "dd-mm-yy")
Me.ComboBox1.DropDown
End Sub
Virker ikke helt efter hensigten.Vil gerne have, at userform starter op med aktuel dato i comboboksen. Ved at trykke på comboboksen, skal kalender blive synlig (droppe ned), man vælger år, måned og dag- herefter vises ny dato i comboboksen. Har selv forsøgt, men ikke med comboboks - i stedet brugt tekstboks og komandoknap med flg. kode:
Private Sub Calendar1_Click()
Userform1.TextBox1 = Format(Me.Calendar1, "DD-MM-YYYY")
Userform1.TextBox1 = Calendar1.Value
Me.Calendar1.Visible = False
End Sub
Private Sub CommandButton1_Click()
Me.Calendar1.Visible = True
End Sub
Private Sub UserForm_initialize()
Me.TextBox1 = Format(Date, "dd-mm-yyyy")
Me.Calendar1 = Format(Date, "dd-mm-yyyy")
Me.Calendar1.Visible = False
End Sub
Ok - hvor virker det ikke efter hensigten?
Kalenderen skriver det i "Drop down" ved åbning userform.ved at trykke på kalender, kommer ny dato i "Drop down". Kun ved at trykke på ændret dato i drop down kommer kalender frem.
Er det rigtig forstået, at kalender skal vises ved opstarten?
Hvis det er det - så slet disse 3 linjer:
Private Sub UserForm_initialize()
Me.Calendar1.Visible = False
End Sub
Ved opstart af userform skal kun comboboksen være synlig med aktuel dato. Ved at trykke på drop down i comboboksen, skal kalenderen komme frem. Her vælges aktuel år, måned og når dato vælges lukkes kalender og nyvalgt dato står i komboboks osv.
Måske så:
Private Sub Calendar1_Click()
Dim dato As Date
With Me.Calendar1
dato = .Day & "-" & .Month & "-" & .Year
End With
Me.ComboBox1.AddItem Format(dato, "dd-mm-yy")
Me.ComboBox1.ListIndex = Me.ComboBox1.ListCount - 1
Me.Calendar1.Visible = False
End Sub
Private Sub ComboBox1_DropButtonClick()
Me.Calendar1.Visible = True
End Sub
Private Sub UserForm_initialize()
Me.Calendar1.Visible = False
End Sub
Private Sub userform_activate()
Me.ComboBox1.AddItem Format(Now, "dd-mm-yy")
Me.ComboBox1.ListIndex = 0
End Sub
Det virker. Kan man få "listen", der kommer frem under comboboksen væk/ikke vise sig - egentlig derfor jeg har brugt tekstboks?
Ja - det skulle nok kunne lade sig gøre. D.v.s. at hvergang ny dato vælges slettes den bestående liste?
Private Sub Calendar1_Click()
Dim dato As Date
With Me.Calendar1
dato = .Day & "-" & .Month & "-" & .Year
End With
Me.ComboBox1.Clear '<-------------------------- tilføjet
Me.ComboBox1.AddItem Format(dato, "dd-mm-yy")
Me.ComboBox1.ListIndex = Me.ComboBox1.ListCount - 1
Me.Calendar1.Visible = False
End Sub
Private Sub ComboBox1_DropButtonClick()
Me.Calendar1.Visible = True
End Sub
Private Sub UserForm_initialize()
Me.Calendar1.Visible = False
End Sub
Private Sub userform_activate()
Me.ComboBox1.AddItem Format(Now, "dd-mm-yy")
Me.ComboBox1.ListIndex = 0
End Sub
Hej - jeg kunne da lige supplere med lade kalenderen starte på den pågældende dato.
Private Sub ComboBox1_DropButtonClick()
Me.Calendar1.Visible = True
If IsDate(Me.ComboBox1.Value) Then
Calendar1.Value = DateValue(Me.ComboBox1.Value)
Else
Calendar1.Value = Date
End If
End Sub
Jeg ville nok også have lavet en popup userform med kalenderen i.
Så fylder den ikke op på userformen.
Har det også i min kode, men fint du gør opmærksom på det, så andre kan få glæde af det.