Avatar billede fagpoler Novice
11. august 2005 - 14:15 Der er 14 kommentarer og
1 løsning

InputBox vender dato forkert

Når jeg i InputBox taster 12/8
Vender datoen forkert, det bliver til
08-12-2005 med dens taldværdi 38694 i
stedet for 38576.

Jeg har brugt følgende kode

Dim Tekst As String, X As Variant
      X = InputBox("Indtast Start Dato")
      If X = "" Then
      Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO"
      MsgBox Tekst
      Else
      '[iv18].Value = Format(TempDat, "ddmmyy") = X 'JEG HAR PRØVET MED DEN HER KODE
      [iv18].Value = X 'Her vender dage og måned forkert
      If [Iv17] < [iv18] Then
      MsgBox "Der er ikke noget at afgrænse"
      Exit Sub
      End If
      End If
Avatar billede kabbak Professor
11. august 2005 - 14:19 #1
Dim Tekst As String, X As Date

  X = InputBox("Indtast Start Dato")
      If X = "" Then
      Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO"
      MsgBox Tekst
      Else
      [iv18].Value = Format(X, "ddmmyy")  'JEG HAR PRØVET MED DEN HER KODE
      '[iv18].Value = X 'Her vender dage og måned forkert
      If [Iv17] < [iv18] Then
      MsgBox "Der er ikke noget at afgrænse"
      Exit Sub
      End If
      End If
Avatar billede kabbak Professor
11. august 2005 - 14:23 #2
måske snare sådan:


Public Sub fs()
Dim Tekst As String, X As Variant
  X = InputBox("Indtast Start Dato")
    If Not IsDate(X) Then
            Tekst = "Du Klikkede Annuler eller tastede ingenting i START DATO"
      MsgBox Tekst
      Else
      [iv18].Value = Format(X, "ddmmyy")  'JEG HAR PRØVET MED DEN HER KODE
      If [Iv17] < [iv18] Then
      MsgBox "Der er ikke noget at afgrænse"
      Exit Sub
      End If
      End If
End Sub
Avatar billede kabbak Professor
11. august 2005 - 14:32 #3
eller

      [iv18].NumberFormat = "ddmmyy"
      [iv18].Value = X
Avatar billede fagpoler Novice
11. august 2005 - 14:45 #4
Jeg kan desværre ikke få det til at virke
hvis jeg bruger
Dim Tekst As String, X As Date
får jeg en fejlmælding at typer ikke passer sammen

Hvis jeg bruger koden
Dim Tekst As String, X As Variant
Skriver den 120805, ikke værdien 38576
Avatar billede fagpoler Novice
11. august 2005 - 15:03 #5
For mig at se vil den have det Amerikanske format Måned dage år i inputBox?
Avatar billede kabbak Professor
11. august 2005 - 15:03 #6
er det talværdien du skal bruge, og ikke datoen ?
Avatar billede fagpoler Novice
11. august 2005 - 15:06 #7
Jeg skal bruge Datoværdien,
sådan at når jeg taster 12/8
giver det 12-08-2005 eller talværdien 38576
Avatar billede fagpoler Novice
11. august 2005 - 15:14 #8
Hvis jeg med min egen oprindelige kode tastede den 8/12/05
så giver det 12-08-2005,
men det er jo omvændt som man normalt indtaster
Avatar billede martin_moth Mester
11. august 2005 - 15:20 #9
Inputboxen har ikke noget "format" - det eneste den kan er at hente noget tekst.

Når du Dimmer så skriv hver variabel på sin egen linie
  Dim Tekst As String
  X As Date 'eller variant

Hvorfor beder du ikke bare brugeren om at skrive datoen på det format du vil anvende?

Alternativt, brug en form, hvor du kan validere hvad der bliver tastet - så kan man fx. taste måned for sig, dag for sig og år for sig. Derefter kombinere du det på den måde du vil...

PS: Du kan helt slippe for variablen text, ved bare at skrive
  MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO"
... det samme princip bruger du jo selv længere nede i koden
Avatar billede fagpoler Novice
11. august 2005 - 15:31 #10
Jeg bliver nok nødt til at skrive datoen direkte ind i en celle, så er problemet løst, men mange tak for jeres svar.
Avatar billede kabbak Professor
11. august 2005 - 15:38 #11
Dim Tekst As String, X As Variant, Dato As Date
  X = InputBox("Indtast Start Dato")
    If Not IsDate(X) Then
            MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO"
    Else
      D = Day(X)
      M = Month(X)
      Y = Year(X)
      Dato = D & "-" & M & "-" & Y
      [iv18].Value = Dato  'JEG HAR PRØVET MED DEN HER KODE
      If [Iv17] < [iv18] Then
      MsgBox "Der er ikke noget at afgrænse"
      Exit Sub
   
      End If
Avatar billede kabbak Professor
11. august 2005 - 16:01 #12
rettet

Dim Tekst As String, X As Variant, Dato As Date, D As Integer, M As Integer, Y As Integer
  X = InputBox("Indtast Start Dato")
    If Not IsDate(X) Then
            MsgBox "Du Klikkede Annuler eller tastede ingenting i START DATO"
    Else
      D = Day(X)
      M = Month(X)
      Y = Year(X)
      Dato = D & "-" & M & "-" & Y
      [iv18].Value = Dato  'JEG HAR PRØVET MED DEN HER KODE
      If [Iv17] < [iv18] Then
      MsgBox "Der er ikke noget at afgrænse"
      Exit Sub
    End If
      End If
Avatar billede bak Forsker
11. august 2005 - 16:45 #13
dette burde kunne gøre det

x = DateValue(InputBox("indtast en dato"))
[IV18] = x
Avatar billede fagpoler Novice
12. august 2005 - 07:17 #14
kabbak jeg får en fejlmælding ved din kode.
Men det var lige det her jeg manglede
x = DateValue(InputBox("indtast en dato"))
så virker det tusind tak bak.
Hvis du ligger et svar får du dine point.
Men også tusind tak til jer andre
Avatar billede bak Forsker
12. august 2005 - 08:27 #15
ok :-)
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