Avatar billede denero Juniormester
03. juli 2012 - 15:57 Der er 13 kommentarer og
1 løsning

Kalender i userform, word

User aktiveres og combobox viser aktuel dato, måned og år. Hvis jeg ønsker at bruge en anden dato, skal der når jeg trykker på comboboksen komme en kalender frem, hvor man kan vælge nyt år, måned, dato - og/eller.For hver nye data man vælger, skal overføres til comboboksen. Når dato trykkes ind, skjules kalender.
Avatar billede supertekst Ekspert
03. juli 2012 - 22:57 #1
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
Avatar billede denero Juniormester
04. juli 2012 - 09:05 #2
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
Avatar billede supertekst Ekspert
04. juli 2012 - 09:47 #3
Ok - hvor virker det ikke efter hensigten?
Avatar billede denero Juniormester
04. juli 2012 - 09:55 #4
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.
Avatar billede supertekst Ekspert
04. juli 2012 - 10:30 #5
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
Avatar billede denero Juniormester
04. juli 2012 - 10:40 #6
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.
Avatar billede supertekst Ekspert
04. juli 2012 - 18:02 #7
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
Avatar billede denero Juniormester
05. juli 2012 - 08:28 #8
Det virker. Kan man få "listen", der kommer frem under comboboksen væk/ikke vise sig - egentlig derfor jeg har brugt tekstboks?
Avatar billede supertekst Ekspert
05. juli 2012 - 08:55 #9
Ja - det skulle nok kunne lade sig gøre. D.v.s. at hvergang ny dato vælges slettes den bestående liste?
Avatar billede supertekst Ekspert
05. juli 2012 - 09:06 #10
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
Avatar billede denero Juniormester
05. juli 2012 - 10:12 #11
Tak for det.
Avatar billede supertekst Ekspert
05. juli 2012 - 10:43 #12
Selv tak..
Avatar billede hnteknik Novice
16. oktober 2012 - 13:51 #13
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.
Avatar billede denero Juniormester
21. oktober 2012 - 07:14 #14
Har det også i min kode, men fint du gør opmærksom på det, så andre kan få glæde af det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows