Avatar billede KurtOA Praktikant
28. januar 2010 - 15:13 Der er 10 kommentarer og
1 løsning

Hvordan gemmer man kommaværdier fra brugerformular til excel-celle?

Er der nogen der kan hjælpe mig med følgende problem?

Jeg har en excelformular hvor der i textbokse skal indtastes en række værdier. Værdierne gemmer jegbagefter i navngivne celler i et excelark.

Fx: 
Range("varighed").Value = txtVarighed.Value hvor jeg gemmer værdien fra textboxen i cellen med navnet "varighed".

Men - når der indtastes et tal i formularen med et komma, fx 1,4, og det gemmes i cellen fortæller Excel at tallet er gemt som tekst. Excelcellen er formateret som tal.

Jeg har fundet en løsning der nok ikke er så smart:
Range("varighed").Value = txtVarighed.Value
Range("varighed") = Range("varighed") * 1
Ved at gange cellens indhold med sig selv løses problemet, men det er vist ikke den rigtige måde.

Hvis jeg så indlæser værdien igen i formularen bliver det der vist som 1.4 - altså med punktum som decimal adskiller istedet for komma. Disse ting hænger sikkert sammen -  kan nogen forklare mig hvad jeg gør galt?

mvh Kurt
Avatar billede kabbak Professor
28. januar 2010 - 15:49 #1
Range("varighed").Value = val(txtVarighed)
Avatar billede kabbak Professor
28. januar 2010 - 15:52 #2
Hvis det er en inputbox fra VBA, då bruger den punktum, som decimaladskiller, den forstår kun engelske talformater

så du skal måske gøre sådan
Range("varighed").Value = val(replace(txtVarighed,",","."))
Avatar billede KurtOA Praktikant
28. januar 2010 - 17:10 #3
Tak for hurtigt svar.

Denne løsning har jeg også prøvet at bruge
- og det løser da på sin  vis problemet.

Men - Jeg er ret ny i brugen af formularer og inputboxe.
Findes der virkelig ikke andre måder at løse dette på?

Jeg kan forudse en farlig masse programmering da jeg ofte vil bruge numeriske inputbokse med behov for korrekt beregning af decimaler.

Er der evt på nogen måde mulighed for at "tweake" excel til at bruge kommaer istedet for punktummer?

mvh Kurt
Avatar billede kabbak Professor
28. januar 2010 - 18:55 #4
Nej, ikke så vidt jeg ved, men du kan jo 'replace' kommaet, som jeg viser, det er ikke så slemt.

Alle værdier er bruges inde i VBA programmering, er altid med punktum som decimal, bare husk det, så går det fint.
Avatar billede store-morten Ekspert
28. januar 2010 - 20:56 #5
Gemme:
Range("A1").Value = Format(TextBox1, "#,##0.00")
Hente:
TextBox1.Value = Format(Range("A1"), "#,##0.00")

Prøv dette.
Gemme:
Range("varighed").Value = Format(txtVarighed, "#,##0,00")
Hente:
txtVarighed.Value = Format(Range("varighed"), "#,##0.00")
Avatar billede KurtOA Praktikant
29. januar 2010 - 10:45 #6
Tak for et godt bud - det ser godt ud at man ikke skal bytte kommaer med punktummer men arbejder med talformaterne.

Til gengæld virker den ved fx 3,5 - men ikke ved 35,4 ?

mvh Kurt
Avatar billede store-morten Ekspert
29. januar 2010 - 13:23 #7
Det gør den hos mig?
35,4 bliver 35,40
135,4 bliver 135,40
Avatar billede KurtOA Praktikant
29. januar 2010 - 13:36 #8
Hej Morten - må lige prøve det igen. det bliver dog først lidt senere på dagen :-) mvh
Avatar billede store-morten Ekspert
29. januar 2010 - 13:51 #9
Kan evt. sende et eks.
Avatar billede KurtOA Praktikant
12. februar 2010 - 15:13 #10
Tak for assistancen Morten.
Har nu langt om længe fået din løsning til at virke.
Havde åbenbart misforstået den i første omgang så jeg havde bruget den "modsat" :-)

Smid et svar for points
Avatar billede store-morten Ekspert
12. februar 2010 - 16:09 #11
Velbekomme.

Og her er et 'Svar' ;-)
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