Oprettet tir. d. 03. juli 2012 kl. 15:57:04

denero
denero (2.670 point. Point ude: 200)

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.

Skrevet tir. d. 03. juli 2012 kl. 22:57:09| #1

supertekst
supertekst (140.069 point)
supertekst-it.dk
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

Skrevet ons. d. 04. juli 2012 kl. 09:05:40| #2

denero
denero (2.670 point)
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

Skrevet ons. d. 04. juli 2012 kl. 09:47:16| #3

supertekst
supertekst (140.069 point)
supertekst-it.dk
Ok - hvor virker det ikke efter hensigten?

Skrevet ons. d. 04. juli 2012 kl. 09:55:55| #4

denero
denero (2.670 point)
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.

Skrevet ons. d. 04. juli 2012 kl. 10:30:42| #5

supertekst
supertekst (140.069 point)
supertekst-it.dk
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

Skrevet ons. d. 04. juli 2012 kl. 10:40:09| #6

denero
denero (2.670 point)
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.

Skrevet ons. d. 04. juli 2012 kl. 18:02:57| #7

supertekst
supertekst (140.069 point)
supertekst-it.dk
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

Skrevet tor. d. 05. juli 2012 kl. 08:28:12| #8

denero
denero (2.670 point)
Det virker. Kan man få "listen", der kommer frem under comboboksen væk/ikke vise sig - egentlig derfor jeg har brugt tekstboks?

Skrevet tor. d. 05. juli 2012 kl. 08:55:27| #9

supertekst
supertekst (140.069 point)
supertekst-it.dk
Ja - det skulle nok kunne lade sig gøre. D.v.s. at hvergang ny dato vælges slettes den bestående liste?

Skrevet tor. d. 05. juli 2012 kl. 09:06:56| #10

supertekst
supertekst (140.069 point)
supertekst-it.dk
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

Skrevet tor. d. 05. juli 2012 kl. 10:12:46| #11

denero
denero (2.670 point)
Tak for det.

Skrevet tor. d. 05. juli 2012 kl. 10:43:03| #12


Skrevet tir. d. 16. oktober 2012 kl. 13:51:23| #13

hnteknik
hnteknik (34.830 point)
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.

Skrevet søn. d. 21. oktober 2012 kl. 07:14:50| #14

denero
denero (2.670 point)
Har det også i min kode, men fint du gør opmærksom på det, så andre kan få glæde af det.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Flytning af makroer og userforms

Oprettet den 17. juni 2013 kl. 15.36
denero giver 200 point for svar | Giv et svar »

Skole skema

Oprettet den 16. juni 2013 kl. 17.34
carlt giver 200 point for svar | Giv et svar »

Protect form virker ikke ?

Oprettet den 13. juni 2013 kl. 09.23
therealbenassi giver 30 point for svar | Giv et svar »







IT Kurser
Samarbejdspartnere

Udgiver · © 2013 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger