30. maj 2007 - 20:34Der er
11 kommentarer og 1 løsning
Komma OG punktum som decimaladskiller
Jeg arbejder med et regneark, som mange skal kunne bruge inden for kort tid og har brug for, at Excel både accepterer komma o punktum som decimaladskiller.
Er der en ekspert, der kan hjælpe med, hvordan man fikser den?
Nej, det er det ikke. Computeren med regnearket står og modtager input fra mange forskellige i løbet af en dag. (Nogle bruger punktum som decimaladskiller, og det er næppe realistisk at forvente, at alle kan opdrages til at bruge komma konsekvent. Derfor dette spørgsmål. Data hentes efterfølgende over i en server, hvor de sorteres og danner grundlag for beslutninger. Det siger sig selv, at punktum-adskilte tal ikke længere er tal og derfor ikke indgår i sorteringen. Det, jeg håber på, er at slippe for den manuelle fejlsøgning i flere hundrede input i løbet af en dag.
Jo, som udgangspunkt kan man selvfølgelig godt, men af sikkerhedshensyn kan man kun opdatere data på de fire decentrale maskiner - ikke på serveren. (De opdaterer også hvert femte minut, så det vil ikke hjælpe meget at rette det hele centralt.) Jeg ville gerne undgå at gå ud til hver maskine for at lave søg/erstat på dem hver især, hvis det kan undgås.
De regneark, der indtastes i er det ikke et, som du er ophavsmand til ? Hvis det er det, kunne en makro indbygget i dette regneark sikkert stille separationstegn for maskinen til punktum(eller komma). Hvad mener du?
Det vil jeg tro, men jeg kan desværre ikkke selv lave sådan en makro. Sådan en er bestemt 200 point værd, hvis nogen er i stand til at ordne den sag... :o)
Ved nærmere eftertanke er følgende kode nok bedre. Er det ikke sådan at maskinernen som du omtaler i din mail, er stillet som de skal med korrekt separator ? Og at brugerne alligevel nogle gange indtaster forkert decimaladskiller. Denne kode giver en besked, hvis der indtastes tal med forkert separator. Læg den under ThisWorkbook.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) indtastning = Target
If IsNumeric(indtastning) Then sep = Application.International(xlDecimalSeparator) If sep = "," Then sepStr = "komma" Else sepStr = "punktum" End If
If Not indtastning Like "*" & sep & "*" Then MsgBox "Husk at bruge " + sepStr + ", når du taster tal", vbCritical End If End If End Sub
Det er jo forrygende. Selv en VB-mongol som mig, der aldrig har været inde i programmet før, kan få det til at fungere. :o) Tak for det.
Kun lige et enkelt spørgsmål: Den kodeændring, der kan få arket til at rette indtastningen samtidig med, at den advarer- er det let? Dét kunne være fedt.
Thanx Sasso
Synes godt om
Ny brugerNybegynder
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.