Avatar billede kim1a Ekspert
03. juli 2012 - 11:29 Der er 3 kommentarer og
1 løsning

Datoformat skifter i VBA

Jeg har søgt lidt omkring på mit spørgsmål, f.eks.
http://www.eksperten.dk/spm/853941 men uden at kunne få det tilpasset min udfordring.

Jeg har en inputbox i VBA som beder brugeren om dato i formatet DD-MM-ÅÅÅÅ - koden ser således ud:
Datoinput:        Dato = InputBox("Hvilken måned afsluttes", "Dato", "DD-MM-ÅÅÅÅ")
    If IsDate(Dato) Then
    IndeværendeÅr = Year(Dato)
    IndeværendeMåned = Month(Dato)
    Else: MsgBox ("Ikke rigtig datoformat"): GoTo Datoinput
    End If

Denne dato bruges i et par formler.

Senere i samme VBAkode skal jeg så bruge en dato en dag nyere end oprindelig. Jeg er kommet frem til:
DateAdd("d", 1, Dato) - denne nye dato skal jeg så bruge til et filter.

Udfordringen er at filterdatoen bliver skrevet som MM-DD-ÅÅÅÅ - altså bliver 30-06-2012 (som så skal blive til 01-07-2012) i stedet til 07-01-2012.

Er der en nem løsning?

Jeg har forsøgt med at navngive via .Value(DD,MM,YYYY), men jeg overvejer om det er nemmere at angive en ny variabel hvor jeg laver inputtet.
Avatar billede supertekst Ekspert
03. juli 2012 - 12:24 #1
Mit eksempel:
Sub test()
datoinput:
    dato = InputBox("Hvilken måned afsluttes", "Dato", "DD-MM-ÅÅÅÅ")
    If IsDate(dato) Then
    IndeværendeÅr = Year(dato)
    IndeværendeMåned = Month(dato)
    Else: MsgBox ("Ikke rigtig datoformat"): GoTo datoinput
    End If

    nydato = DateAdd("d", 1, dato)          'nydato: 01-07-2012
   
    nydato2 = Format(nydato, "MM-DD-YYYY")  'nydato2: 07-01-2012
End Sub
Avatar billede kim1a Ekspert
03. juli 2012 - 12:45 #2
Ah så simpelt :-)

Jeg tror dog du misforstod mig lidt, jeg ville ikke have den til at vælge 07-01-2012, men jeg gjorde dette:

Datoinput:        Dato = InputBox("Hvilken måned afsluttes", "Dato", "DD-MM-ÅÅÅÅ")
    If IsDate(Dato) Then
    IndeværendeÅr = Year(Dato)
    IndeværendeMåned = Month(Dato)
    LagerFilterdato = Format(DateAdd("d", 1, Dato), "DD-MM-YYYY")
    Else: MsgBox ("Ikke rigtig datoformat"): GoTo Datoinput
    End If

Linjen jeg satte ind var netop som jeg overvejede - at lave variablen med det samme og så sætte den ind i en Format "formel".

Tak for hjælp - smid svar.
Avatar billede supertekst Ekspert
03. juli 2012 - 12:56 #3
Selv tak - og et svar
Avatar billede kim1a Ekspert
03. juli 2012 - 15:33 #4
Nu holdt det så op med at virke igen?!?
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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