Ideen i datoen skal indtastes i formatet er jeg senere skal bruge det til beregninger og hvis formatet er således gør det det væsentligt lettere for mig.
Jeg vil også have den til at loope indtil datoen bliver indtastet som
Jeg har lavet følgende kode, men den virker ikke efter hensigten. Datoen bliver indtastet som en streng i en input box, udfra den streng tester jeg så nogle if betingelser, og hvis de er opfyldt skulle datoen gerne godkendes, således jeg kan bruge den "videre".
loFodseldag = InputBox("indtast fødselsdagen du ønsker at finde CPR numre for", "Fødselsdato boks")
If Len(loFodseldag) <> 6 Then check_dato = False If Mid(loFodseldag, 1, 2) < 0 Then check_dato = False If Mid(loFodseldag, 1, 2) > 31 Then check_dato = False If Mid(loFodseldag, 4, 2) < 0 Then check_dato = False If Mid(loFodseldag, 4, 2) > 12 Then check_dato = False If Mid(loFodseldag, 6, 2) < 1858 Then check_dato = False If Mid(loFodseldag, 6, 2) < 2057 Then check_dato = False
Du er nok nødt til at have årstal i formatet ÅÅÅÅ Koden kan jo ikke vide hvilket århundrede der menes Senere i forløbet kan formatet vel ændres til DDMMÅÅ
Sub test()
check_dato = True
x = InputBox("indtast fødselsdagen du ønsker at finde CPR numre for DDMMÅÅÅÅ", "Fødselsdato boks") dag = Left(x, 2) md = Mid(x, 3, 2) år = Right(x, 4)
If dag < 1 Or dag > 31 Or md < 1 Or md > 12 Or år < 1858 Or år > 2057 Then check_dato = False
Nej, det kan du ikke. Inputboxen holder pr definition en streng. Du bruger streng-metoder (MID) til at separere de forskellige dage/måneder/år -det er helt OK. Men når du derefter tester dem i forhold til "rigtige" tal som 0 og 31 bør du konvertere dem til talformater.
Jeg er lidt doven, så jeg dimmer ikke med mindre det er strengt nødvendigt Du kan også gøre sådan (bevare variablerne som string du kan ændre dem efter behov
Sub test()
check_dato = True
x = InputBox("indtast fødselsdagen du ønsker at finde CPR numre for DDMMÅÅÅÅ", "Fødselsdato boks") dag = Left(x, 2) md = Mid(x, 3, 2) år = Right(x, 4)
If dag * 1 < 1 Or dag * 1 > 31 Then check_dato = False If md * 1 < 1 Or md * 1 > 12 Then check_dato = False If år * 1 < 1858 Or år * 1 > 2057 Then check_dato = False
Du skal ikke lave dine indlæg som "svar". Svar er forbeholdt dem der har løsningen. Du skal lægge kommentarer.
Normal procedure er: Alle lægger sine indlæg som kommentarer, indtil spørger er tilfreds. Så beder spørger den eller de brugere der har bidraget til løsningen om at lægge et svar (excelent).
Derefter kan spørger give point til dem der har svaret (i dette tilfælde også dig selv), som han mener skal have point .
Jeg vil dog godt have den til at lave en msgbox hvis den laver fejl i tjekket i stedet for bare "false"
Også loope tilbage til min inputbox hvor jeg skal indtaste den. Jeg har dog lidt problemer med det:
Sub test()
check_dato = True
x = InputBox("indtast fødselsdagen du ønsker at finde CPR numre for DDMMÅÅÅÅ", "Fødselsdato boks") dag = Left(x, 2) md = Mid(x, 3, 2) år = Right(x, 4)
If dag * 1 < 1 Or dag * 1 > 31 Then check_dato = False If md * 1 < 1 Or md * 1 > 12 Then check_dato = False If år * 1 < 1858 Or år * 1 > 2057 Then check_dato = False
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.