Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Excel Konvertering till tal

Postades av 2006-10-17 10:36:27 - Harry Rosendahl, i forum microsoft office, Tråden har 8 Kommentarer och lästs av 4132 personer

Återkommer till mitt problem med Decimaler.

Jag har en AccessDB med fält som innehåller fler decimaler än jag vill ha med i en Excel-redovisning.
Visat sig att det inte är möjligt att rätta till problemet i AccessDB så att jag där skulle mata in enbart tal avrundade till 2 decimaler.

Istället formaterar jag om de värden jag läser från AccessDb vid inläsningstillfället och lagrar dem med 2-decimaler i Excelbladet med nedanstående VBA-kod:
Range(sRange) = Format((rsManadsUppgift.Fields("SaldotillNastaMan")), "0#.##")
Finns det ev. bättre sätt att formattera?

Ovanstående ger mig mina värden med 2-decimaler i mitt Excelblad. Problemet är att de lagras som en textsträng. Ett värde blir då t.ex:
00, eller
-33,2 eller
-377,42
Alltid vänsterjusterat i kolumnen (utan apostrof).

Hur kan jag enkelt konvertera innehållet(text) till tal?
Använder jag funktionen ' Range(sRange) = Val(Range(sRange)) så blir endast heltalsdelen omvandlad till tal. Jag får t.ex värdena:
0
-33
-377

Hur får jag alltså med även decimaldelen?

I det fall att jag markerar en av cellerna som innehåller ett textvärde, så får jag möjlighet att använda en funktion ”Konvertera till tal”. Den funktionen gör jobbet att förvandla hela textsträngen -377,42 till ett korrekt numeriskt värde med decimaler, men hur kommer jag åt den funktionen med VBA-kod?

En annan variant vore att använda ”klistra in special” och multiplicera med 1. Men hur kommer man i så fall åt att utföra ”Klistra in special” via VBA-kod?


Tacksam för svar/ Harry


Svara

Sv: Excel Konvertering till tal

Postades av 2006-10-17 11:31:04 - Robert Israelsson

Borde även fungera med

Range.NumberFormat = "0.00"


Svara

Sv: Excel Konvertering till tal

Postades av 2006-10-17 11:44:23 - Jan Bulér

Vore det inte bättre att överföra hela decimaltalet till Excell men sedan sätta cellformateringen i Excell att bara visa önskat antal decimaler, t ex

Range(sRange).NumberFormat = "0.00"

Att Excell tror att det är en sträng beror troligtvis på det kända problemet med "," och "." som decimalavskiljare, prova att använda följande:
Range(sRange) = CDbl(rsManadsUppgift.Fields("SaldotillNastaMan"))

Om jag komer ihåg rätt så ska CDbl konvertera riktigt till flyttal oavsett om det är "." eller "," som decimalavskiljare


Svara

Sv:Excel Konvertering till tal

Postades av 2006-10-18 08:41:14 - Harry Rosendahl

Tack för era svar!

Om jag överför hela decimaltalet till excel så blir summeringen av kolumnerna fel eftersom summeringen görs med fler decimaler än de som visas.

Använder jag : Range(sRange).NumberFormat = "0.00" så finns alla decimaler (fler än 2) kvar i cellerna.

En lösning som fungerar ser ut såhär:
Range(sRange) = Format((rsManadsUppgift.Fields("SaldotillNastaMan")), "0#.##")
Range(sRange) = CDbl(Range(sRange))

Då formateras först värdet till en textsträng med 2decimaler varefter CDbl konverterar talet till ett flyttal.

Det handlar om ett stort antal fält, så
finns det bättre lösningar så tackar jag och tar emot.

mvh/Harry


Svara

Sv: Excel Konvertering till tal

Postades av 2006-10-18 11:18:34 - Martin Adrian

Varför inte nåt i stil med

Range(sRange) = Round(Range(sRange),2)


Svara

Sv:Excel Konvertering till tal

Postades av 2006-10-18 12:40:20 - Harry Rosendahl

Jodå!
Range(sRange) = Format((rsManadsUppgift.Fields("SaldotillNastaMan")), "0#.##")
Range(sRange) = Round(Range(sRange),2)

Fungerar lika bra men på vilket sätt är det en bättre lösning?


Svara

Sv:Excel Konvertering till tal

Postades av 2006-10-19 18:37:35 - Harry Rosendahl

Tack Martin!
Du har rätt. Genom att använda: Range(sRange) = Round(Range(sRange),2)
så slipper man formatera värdet först till en textsträng och
lösningen blir istället såhär:
Range(sRange) = rsManadsUppgift.Fields("SaldotillNastaMan")
Range(sRange) = Round(Range(sRange),2)
alltså en bättre lösning.

mvh/Harry


Svara

Sv: Excel Konvertering till tal

Postades av 2006-10-20 08:38:04 - Jan Bulér

Du kan göra det i ett steg,

Range(sRange) = Round(rsManadsUppgift.Fields("SaldotillNastaMan") ,2)


Svara

Sv:Excel Konvertering till tal

Postades av 2006-10-20 08:45:12 - Harry Rosendahl

Tackar Jan!
Ännu bättre!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 746
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies