26. september 2007 - 10:08Der er
9 kommentarer og 1 løsning
VBA_Ved forkert seperator
Har lavet et program i VBA, som bliver brugt af Engelske og Skadinaviske brugere, problemet med at nogle bruger punktum som seperator, andre punktum, havde løst ved at programmet selv ændrede dette, nu efter en sikkerhedsopdatering af systemet, er dette ikke muligt, så nu leder jeg efter noget andet. Problem: Hvis brugeren skriver f.eks 14.5 i en dialog box, så er resultatet der bruges i de videre beregninger f.eks -547878 Hvis brugeren skriver: 14,5 så er resutatet f.eks 0,7156 (som er det korrekte) Det næst bedste jeg kan komme på, er at ved negativt resultat, kommer programmet op med en msg box som beder brugeren om at ændre seperator, nogle forslag til hvordan dette kan gøres ?? Det er lidt af en lappe løsning, men problemet er, at der er forskellige tastatur layout (region settings) på nogle af computerne på stedet. Er der nogle der kan komme op med noget smart, vil jeg være meget taknemmelig. På forhånd tak. Peter
Er det kun ved indtastninger i en dialogboks, at problemet opstår? For så kunne du lave en replace på det indtastede, hvor du skifter . ud med , - kunne f.eks. være når brugeren forlader den tekstboks, der tastes i.
Jeg gjorde det ved at en MsgBox gjorde opmærksom på at der skulle bruge komma seperator, samt selv ændrede punktum til komma, men efter en opgradering af et sikkerheds system, går den ikke længere, problemet er at der er forskellige computere på stedet med Skandinavisk og Engels opsætning, så problemet virker begge veje, det er noget rod.(Englænder ved Skandinavisk tastatur / Skandinav ved engelsk tastatur) Indtastningen bruges til udregning af bouyacy af metal i vædske, denne udregning bruges så til videre udregninger i programmet, det er kritisk at udregningen passer. Ved ar fremprovokere fejlen, kan jeg kun sige, at ved fejl seperator er tallet altid negativt. Tak for dit indlæg. Mvh Peter
#rigpig -> Der er vel ikke noget til hinder for at skifte et punktum ud med et komma i en tekstboks? Det er jo ikke noget, man behøver at bede brugeren om, såfremt de altså kun taster decimalseparatoren og ikke tusindtalsseparatorer.
Excelent Til dit spørgsmål, tallet kan være fra 8,0 til 21,0 med en decimal. Er blevet kaldt på arbejde, kan først teste dit forslag om ca. en uge, men ved at læse din kode, ser det lovende ud. Jeg har en textbox hvor man skriver vædskevægten, derefter trykke på en knap, og bouyancy udregnes og vises i en anden textbox Men det ser interessant ud, tester når det er muligt, tak. Peter
Word-hajen Korrekt, det var også det jeg gjorde, men gjorde bare brugeren opmærksom på at det blev gjort, men efter 2 år, fik jeg pludselig en masse mails om, at programmet ikke længere virkede, på min PC var der ingen problemer, men på arbejds stederne, var det ikke længere muligt at taste decimal tal ind, fjernede jeg koden der automatisk satte korrekt seperator, virkede programmet igen, men så var risikoen, for fejl beregnnger jo til stede igen, ser ud til at sikkerheds niveauet ikke tillader at der pilles ved opsætningen. Jeg skylder lige at sige, at programmet er et hobby project, ikke kommercielt, men bliver brugt af folkene på bore rigge til beregning af slitage på wire. I må meget gerne fortsat komme med forslag, hvis i har tid og lyst. Tak for hjælpen Peter
Hej excelent Det endte med at jeg slettede alt i programmet med automatisk indsætning af komma seperator, så virked programmet igen, men brugeren må selv se at resultatet er korrekt, ikke optimalt. Er i gang med at lave programmet i C# rendte ind i nøjagtig de samme problemer, computere der er opsat til engelsk og skandinavisk tastatur, men hvis forkert seperator bruges, er resutatet altid i minus, så jeg vil lave en check på dette, og så komme med en dialog box, der beder brugeren ændre seperator, tror det er det bedste, mangler så lige at finde ud af hvordan en streng checkes for minus ! Jeg kan måske bruge dit indlæg i anden sammenhæng, så du får dine velfortjente points, hvis du lige kan ryste en kode ud af ærmet angående søgning af minus tegn i en streng i VBA, må du meget gerne smide den her. Tak for hjælpen. Rigpig
If InStr([a1], "-") > 0 Then MsgBox ("Ja ( - ) findes i A1")
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.