Avatar billede kmlp2 Nybegynder
20. marts 2004 - 11:38 Der er 6 kommentarer og
1 løsning

Datoformat og inputbox

I et større antal celler på et regneark indsættes en dato (den samme i dem alle), som brugeren angiver i en inputbox knyttet til en Date-variabel. Det virker fint, så længe brugeren indtaster noget, og valideringen af input virker også som den skal (cellerne er i øvrigt i forvejen formatteret som datoer, men det har vist ikke nogen betydning - nævnes blot til info).
Men hvis brugeren klikker OK uden at have tastet et input, eller hvis brugeren klikker Cancel, får han en fejl af typen "Type mismatch" - hvor jeg gerne vil have, at der bare ikke sker noget.
Hvordan undgår jeg denne fejl?
Jeg har prøvet at knytte boxen til en string-variabel i stedet for en Date - så kører det sådan set, men datoen er bare ikke i datoformat. Den har jeg så på bedste træskomanér prøvet at konvertere ved hjælp af Excels DateValue-funktion, men det virker af en eller anden grund kun på nogle datoer, og jeg føler også, at dér er jeg på afveje.
Avatar billede kabbak Professor
20. marts 2004 - 16:03 #1
Lav et tjek på inputtet om det er tom,

Sub DatoIndtast()
Dim Dato As Variant
Dato = InputBox("Indtast dato")
If Dato = "" Then
MsgBox "Dato skal indtastes)"
DatoIndtast
End If
End Sub
Avatar billede kmlp2 Nybegynder
20. marts 2004 - 19:55 #2
Det glemte jeg at sige: det har jeg også prøvet, og det giver samme fejl. Den når slet ikke frem til tjekket - i debugging mode er "Dato = Inputbox()" gul.
Avatar billede kmlp2 Nybegynder
20. marts 2004 - 20:10 #3
Der var lige en detalje i dit svar jeg overså, nemlig at du deklarerede datoen som Variant. Det har jeg lige prøvet, men det giver samme resultat som med String, jfr. ovenfor.
Avatar billede kmlp2 Nybegynder
20. marts 2004 - 20:49 #4
Nå, nu kan jeg se, hvad problemet er, når datoerne kommer fra variable af String- og Varianttyperne: Datoerne bliver opfattet på amerikansk, dvs. 12-03-04 går fint, fordi programmet læser det som 3. december, mens 20-03-04 returneres som tekst, da der ikke er 20 måneder. Det er jo et helt andet problem, men hvis du (I ?) har løsningen på det, er jeg meget interesseret, da jeg er stødt på det i andre sammenhænge.
Avatar billede kmlp2 Nybegynder
20. marts 2004 - 21:32 #5
Problemet er løst ved at erstatte "dato" med "DateValue(dato)" i koden. Det, jeg først havde prøvet, og som ikke virkede, var - inde fra koden - at indsætte DateValue-funktionen i selve arket ved siden af returværdierne fra variablen. Hvorfor det ikke virker, kan jeg ikke gennemskue eller se nogen konsistens i, men jeg må videre...
Som eneste bidragyder er pointene vel dine kabbak, ikke mindst da din halvbror bak engang hjalp min forhenværende fætter kmlp med et datevalue-problem uden at få point...  Men så må du jo lige svare.
Avatar billede kabbak Professor
23. marts 2004 - 19:30 #6
Ok så et svar, men du løste selv 'erstatte "dato" med "DateValue(dato)" '

så jeg skal vel ikke have det hele. ;-))
Avatar billede kabbak Professor
23. marts 2004 - 21:11 #7
tak for pointz ;-p
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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