Avatar billede boogjanne Nybegynder
04. juni 2004 - 11:48 Der er 21 kommentarer og
2 løsninger

Formatering af Excel makro importerede csv data (tal)

Når min makro importerer *.csv filen, ser tal således ud: ="0.87". Når jeg så kopiere og indsætte værdierne, ser det således ud: 0.87. Når jeg udskifter . med , og formaterer som tal (2 dec.), ser det rigtigt ud. Men makro kan ikke læse disse tal. En sammentælling giver resultat 0.
Et godt bud ønskes
Tak
Avatar billede jpvj Nybegynder
04. juni 2004 - 11:59 #1
Kan du ikke bruge Value/Værdi funktionen til at oversætte dine strenge til tal?

Husk evt. at tage højde for ./,

/JP
Avatar billede martin_moth Mester
04. juni 2004 - 20:59 #2
VBA regner med . som decimalkomma. Derfor er tallet 0,87 ikke anvendeligt i en macro-kode.

Hvorfor skifter du frem og tilbage mellem , og .?
Avatar billede boogjanne Nybegynder
05. juni 2004 - 13:59 #3
Til martin moth og jpvj: Tak for forslagene, men jeg kan ikke se de løser problemet. Jeg bruger ikke , i VBA koden. Ved import af Excel.csv filen viser formellinie formatet: ="0.87". Derefter kopierer/indsætter jeg value, det giver formatet "0.87". Jeg koder en sum i bunden af kolonnen uden at definere ,/. i koden. Men summen bliver 0. Derfor prøvede jeg at søge/erstatte . med ,. Jeg får så det ejendommelige resultat, at jeg kan lægge tal i 2 kolonner sammen i kolonne 3 med koden: Activecell.FormulaR1C1 = "=RC[-1]+RC[-2]", men sum i bunden af kolonner er stadig 0, jeg anvender her koden: Range("F" & Activecell.Row).FormulaR1C1 = "=SUM(R[-" & nrk - rk & "]C:R[-1]C)".
Hilsen
Avatar billede martin_moth Mester
05. juni 2004 - 14:51 #4
Har du tjekket at formlen det bliver indsat ser rigtig ud?
Altså kontrolleret hvad der står i den celle, hvor du indsætter sumformlen - den er med 99% sikkerhed forkert!

Prøv derefter at indsætte sumformlen manuelt, uden brug af macro, og se om den også giver nul
Avatar billede boogjanne Nybegynder
05. juni 2004 - 15:08 #5
Du er hurtig, dejligt. Jeg har tjekket begge dele, men med resultat sum 0. Formlen er rigtig, og når jeg laver den manuelt i cellen giver det også 0.
Hilsen
Avatar billede martin_moth Mester
05. juni 2004 - 15:24 #6
Ergo er der ikke fejl i din macro!!!
Avatar billede martin_moth Mester
05. juni 2004 - 15:27 #7
Så er det eneste sted fejlen kan ligge i de enkelte celler der skal summeres. De indeholder åbenbart ikke tal.

Prøv at tag to tilfældige celler (af dem der summeres) og læg dem sammen manuelt (altså =A2+A3, hvis det er de to celler du vælger). Se om det giver noget.
Avatar billede martin_moth Mester
05. juni 2004 - 15:29 #8
PS: jeg går ud fra, at du naturligvis har tjekket, at det er de rigtige celler der summeres i din sum-formel!
Avatar billede boogjanne Nybegynder
05. juni 2004 - 18:33 #9
Hej, martin. Jeg har tjekket på kryds og tværs, og det gør jeg fortsat. Der må være en logikfejl jeg ikke kan få øje på.
Hilsen
Avatar billede martin_moth Mester
05. juni 2004 - 18:40 #10
Det er helt tydeligt, at fejlen må ligge i de celler du summerer, hvis du ellers er sikker på at sumformlen er korrekt.

SÅ tjek hver celle for sig - lad hver celle indgå i et regneudtryk, og se om det giver et rigtigt redultet - eller bare nul. Gang f.eks. hver celle med 10. Det burde være lige til at finde fejlen!
Avatar billede bak Seniormester
05. juni 2004 - 20:00 #11
Summen vil blive 0 hvis excel fastholder tekstformatet
Sæt et 1-tal i en tilfældig celle
Kopier cellen
Marker alle dine data
Vælg Indsæt Speciel, klik i Multiplicer og OK


Nu bliver alle de data der er tekst, lavet om til værdi.
Optag det evt. i en makro.
Avatar billede boogjanne Nybegynder
05. juni 2004 - 22:21 #12
Hej med jer. Det her lyder spændende. Men hvordan multiplicerer jeg i forbindelse med indsæt speciel? Jeg kan sagtens markere Multiplicer, men hvordan fortæller med "1"?
Hilsen
Avatar billede bak Seniormester
05. juni 2004 - 23:32 #13
Først kopierer du cellen hvor der står et 1-tal i.
når du så har markeret alle dine data og vælger Indsæt speciel, Multiplicer så ved excel at den skal multiplicere alle markerede celler med 1, istedet for at indsætte kopien i alle celler.
Avatar billede boogjanne Nybegynder
06. juni 2004 - 11:02 #14
Hej med jer. Det her er en hård nød at knække. Jeres ide med at multiplicere virker fint, når jeg laver det manuelt i arket.
Men når jeg afspiller det fra indspillet/kodet makro så virker det ikke.
Men tak for jeres hjælp. Ideen med multiplikationsmetode er genial.
Hilsen
Avatar billede martin_moth Mester
06. juni 2004 - 11:26 #15
Hilsen

Hilsen hvem?

Bo?
Janne?
Er bo og janne to personer, eller er du skitzofren?

Gaaab - gider ikke arbejde på en søndag :o)
Avatar billede bak Seniormester
06. juni 2004 - 14:21 #16
Sub Text2Numbers()
    ' indsæt et 1-tal i tilfældig celle
    Range("AA1").FormulaR1C1 = "1"
    'kopier cellen
    Range("AA1").Copy
    'indsæt speciel, multiplicer
    Range("A1:A100").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    'fjern 1- tallet igen
    Range("AA1").ClearContents
End Sub
Avatar billede bak Seniormester
06. juni 2004 - 14:28 #17
eller lidt kortere

Sub test()
Range("A1:A100").Value = Range("A1:A100").Value
End Sub
Avatar billede boogjanne Nybegynder
06. juni 2004 - 22:38 #18
Hej. Jeg har løst problemet på en helt anden måde, jeg ved ikke hvorfor det virker, men det virker.
Problemet opstod efter behandling af en større mængde data, som blev formateret og flyttet mellem flere regneark og faneblade.
Jeg prøvede at vende sekvensen, så der importeres,kopiere/indsætte værdier og derefter med makro indsætte værdier fra hver enkelt celle til nye kolonner.
Nu kan jeg sove roligt.
Hilsen
Henry
Avatar billede martin_moth Mester
07. juni 2004 - 07:58 #19
Hmm

Bo og Janne er åbenbart en helt tredie person ved navn Henry.

Hmmmm

:o)
Avatar billede boogjanne Nybegynder
07. juni 2004 - 21:26 #20
Ja
Hilsen
Avatar billede martin_moth Mester
08. juni 2004 - 08:30 #21
Mon ikke Bo og Janne og Henry skulle lukke spørgsmålet nu? :o)
Avatar billede boogjanne Nybegynder
08. juni 2004 - 22:31 #22
Vil du lige hjælpe mig, Martin, hvordan gør jeg det?
Jeg har for et par dage siden klikket på Accepter-knappen, men jeg kan jo se at points stadig står åbne.
Må jeg vende tilbage til dig i næste uge med et uddybende spørgsmål til automatisk filnavn?
Hilsen
Henry
Avatar billede martin_moth Mester
09. juni 2004 - 08:56 #23
Marker den bruger du vil tildele points. Tryk på accepter
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

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