Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukkettextbox værdi til dato

 Besvar Besvar
Forfatter
Matlock Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 25.Mar.2012
Land: Danmark
Status: Offline
Point: 49
Direkte link til dette indlæg Emne: textbox værdi til dato
    Sendt: 12.Sep.2017 kl. 17:51
Hej Alle
Jeg har lavet en userform som kan lave nogle aftalesedler for mig. De bliver nummeret fortløbende 
Hvis jeg indtaster et aftalesedel nummer der allerede er lavet, genkalder den de gamle værdier, men Datoen bliver genkaldt som et tal ikke en dato.

Håber i kan hjælpe

Her er koden der driller
Private Sub txtAftale_AfterUpdate()
    
If WorksheetFunction.CountIf(sheet3.Range("D:D"), Me.txtAftale.Value) = 0 Then
    Me.txtAftale.Value = ""
    Exit Sub
    End If
    With Me
    .txtbesk = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 2, 0)
    .txtDato = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 7, 0)
    .txtVare1 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 8, 0)
    .txtPris1 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 9, 0)
    .txtVare2 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 10, 0)
    .txtPris2 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 11, 0)
    .txtVare3 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 12, 0)
    .txtPris3 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 13, 0)
    .txtVare4 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 14, 0)
    .txtPris4 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 15, 0)
    .txtVare5 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 16, 0)
    .txtPris5 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 17, 0)
    .txtVare6 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 18, 0)
    .txtPris6 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 18, 0)
    
    
    End With
End Sub

Private Sub UserForm_Activate()

txtDato.Text = Format(Now, "dd-mmm-yyyy")

End Sub
Til top



Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 12.Sep.2017 kl. 21:14
Jeg går ud fra, at det er denne linje:
.txtDato = Format(Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 7, 0), ""dd-mmm-yyyy)
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 13.Sep.2017 kl. 18:57

Jeg ved ikke om Excelgaards løsning virker, men jeg tror det ikke, da jeg mener anførselstegnenen står forkert omkring datoformatet i hans kode.
Skal datoformatet ikke ind imellem de to anførselstegn ??

.txtDato = Format(Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 7, 0), "dd-mmm-yyyy")


Men hvis den skal vise d.d. mangler koden så ikke også dobbelt parentes efter Now() ??
Private Sub UserForm_Activate()
   txtDato.Text = Format(Now(), "dd-mmm-yyyy")
End Sub


Eller måske skal koden bare ind i Update Sub'en i stedet, så den laver opdateringen hver gang der laves en ændring i userformen ??
Det er så vidt jeg kan se også Excelgaards løsning, men jeg har bare skilt de to txtDato koder ad.
Private Sub txtAftale_AfterUpdate()
    If WorksheetFunction.CountIf(sheet3.Range("D:D"), Me.txtAftale.Value) = 0 Then
    Me.txtAftale.Value = ""
    Exit Sub
    End If

    With Me
    .txtbesk = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 2, 0)
    .txtDato = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 7, 0)
    .txtDato = Format(Now(), "dd-mmm-yyyy")
    .txtVare1 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 8, 0)
    .txtPris1 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 9, 0)
    .txtVare2 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 10, 0)
    .txtPris2 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 11, 0)
    .txtVare3 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 12, 0)
    .txtPris3 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 13, 0)
    .txtVare4 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 14, 0)
    .txtPris4 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 15, 0)
    .txtVare5 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 16, 0)
    .txtPris5 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 17, 0)
    .txtVare6 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 18, 0)
    .txtPris6 = Application.WorksheetFunction.VLookup(CLng(Me.txtAftale), sheet3.Range("Lookup"), 18, 0)    
    End With
End Sub

Bare nogle forslag uden at være specialist Ermm
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 13.Sep.2017 kl. 19:08
Jeg er ikke enig  Smile

Men, lad os se, hvad Matlock vender tilbage med af tilbagemelding  Smile
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 13.Sep.2017 kl. 19:25
Citat: EXCELGAARD EXCELGAARD skrev:

Jeg er ikke enig  Smile

Men, lad os se, hvad Matlock vender tilbage med af tilbagemelding  Smile
 
Jeg troede at Matlock måske havde undladt at svare, fordi koden ikke virkede.
Og med min ringe VBA viden, anede jeg noget, der måske kunne være galt.

Men hvad ved jeg Disapprove
Det er jo dig, der er eksperten og kan lave koderne, uden at behøves at afprøve dem også ,hvilket jeg gerne ville, jeg også kunne.
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 13.Sep.2017 kl. 19:44
Ja, jeg indrømmer, at jeg ikke har afprøvet denne der, da jeg ikke gad oprette en UserForm, med alle kontrollerne til formålet - den er oprettet direkte ud af hovedet.

Såååååå....
...måske får du ret  Geek

Men, tak for dine rosende ord  Embarrassed
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
excelent Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 12.Apr.2011
Land: DK
Status: Offline
Point: 2171
Direkte link til dette indlæg Sendt: 13.Sep.2017 kl. 21:17
Jo Ib har ret, datoformatet skal omsluttes af anførselstegn
som i
txtDato.Text = Format(Now(), "dd-mmm-yyyy")
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 07:44
Jeg tænkte, at en dags dato kode i Excel er =NU() / =NOW()
Så det må også gælde i VBA.

Jeg er spændt på om det virker i Matlock's ark.
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 08:06
som jeg læser det, er det ikke nuværende tidspunkt, der er problemet, men når han overfører data til tekst boksen, der er problemet - og, så virker mit indspark.

Hvis det er dags dato, som han ønsker, så hedder funktionen i VBA, Date.
Format ( Date , "dd-mmm-yyyy" )

Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 08:22
    UserForm1.TextBox1 = Format(Date, "dd. mmmm yyyy")
 eller
    UserForm1.TextBox2 = Format(Now(), "dd. mmmm yyyy")
 
Begge virker Wink
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 10:39
Citér [code]Begge virker
Korrekt...
Men funktionen 'Now' svarer til regnearksfunktionen '=NU()' og indeholder også tidspunkt,
mens funktionen 'Date' svarer til regnearksfunktionen '=IDAG()', og indeholder kun datoen.

Det er god programmeringsskik, at benytte 'Date', hvis man kun har behov for datoen, og 'Now', hvis man har behov for tidspunktet, for at gøre det lettere for læseren af koden, at se, hvad man benytter.
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 11:13
Okay, det lyder fornuftigt.

Og formatet "dd-mm-yyyy", da textboxen ellers ville gengive det engelske 9/14/2017 med måneden først.
I stedet for det danske 14-09-2017 👍

Men så må du da i det mindste medgive, at din første kode, der slutter med formatet, er forkert.

Dine gåseøjne står foran datoformatet.
sheet3.Range("Lookup"), 7, 0), ""dd-mmm-yyyy)
Gåseøjnene skulle i stedet omslutte datoformatet.
sheet3.Range("Lookup"), 7, 0), "dd-mmm-yyyy")

Gad vide om Matlock kan finde ud af alt det her, når han engang kommer ind og ser tråden Unhappy


Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 12:03
Nåååååh...
...det havde jeg slet ikke set - jo, naturligvis skal formatet stå inden for anførselstegn, men, mon ikke Matlock selv havde regnet det ud, da han jo selv har gjort det rigtigt længere nede - så han kender udemærket 'Format' funktioen - en tastefejl kan normale folk selv regne ud og se sig ud af  Smile


Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 14.Sep.2017 kl. 12:10
Ja, hvis man ikke er VBA-idiot som mig.
Jeg kan bruge måneder på at sidde og kigge efter sådan en tastefejl LOL

Bare held og ikke dygtighed, den sprang mig i øjnene, som noget af det første, da jeg så koden.

Men jeg tror nu også Matlock kan regne den ud.
Ellers kan jo bare kigge på hele tråden, der efterhånden er blevet noget lang.
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
Matlock Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 25.Mar.2012
Land: Danmark
Status: Offline
Point: 49
Direkte link til dette indlæg Sendt: 19.Sep.2017 kl. 18:21
Tak for svaret. Det virkede perfekt.

Når man indtaster (NOW) genkalder den kun dagsdato og ikke og ikke den dato aftalesedlen var lavet.
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk