Avatar billede familienriis Nybegynder
23. februar 2008 - 17:19 Der er 2 kommentarer og
1 løsning

Fejl i tal ved import

Jeg importerer nogle linier fra en txt-fil. vedhjælp af medenstående makro (det er næsten udelukkende optaget med makro optager - da jeg foretog en import fra ekstern fil.)

Det går altsammen meget fint så længe tallene har 0 eller 1 eller 2 decimaler.
Engang imellem er der dog et tal som har mange flere decimaler som den linien med tekst10.

I linien med TESK10 skulle den helst importere 9385,56, men den importerer 938556000000001 istedet.

Er der nogen der kan afhjælpe denne fejl?
Jeg har sat en stump af tekstfilen ind og min makro til importen

" 1000","30.10.2007", 189,"tekst1  ","0", 813.33,,0
" 1000","30.10.2007", 189,"tekst2  ","0", 192.69,,0
" 1000","31.10.2007", 210,"tekst3  ","0", 17.8,,0
" 1000","31.10.2007", 202,"tekst4  ","0", 57.75,,0
" 1000","31.10.2007", 210,"tekst5  ","0", 17.8,,0
" 1000","31.10.2007", 210,"tekst6  ","0",-17.8,,0
" 1200","01.11.2007", 204,"tekst7  ","0", 3.39,,0
" 1200","01.11.2007", 208,"tekst8 ","0", 91.15,,0
" 1200","05.11.2007", 207,"tekst9 ","0", 1101.12,,0
" 1200","14.11.2007", 211,"tekst10  ","0", 9385.56000000001,,0



Sub ImporterCSVfil()
' Åbner en CSV fil og importerer den til excel
    Flt = Flt & "CSV Filer(*.csv),*.csv"
    Titel = "Vælg fil, som skal bearbejdes"
    fileToOpen = Application _
    .GetOpenFilename(Flt, , Titel)
  If fileToOpen <> False Then
   
    Worksheets("ARK1").Activate
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & fileToOpen, Destination _
        :=Range("A1"))
        .Name = "ARK1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = "'"
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    End If
 
End Sub
Avatar billede kabbak Professor
23. februar 2008 - 21:00 #1
så vidt jeg kan se er din fil kommasepareret
så mon ikke
disse skal byttes

      .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False

med
      .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
Avatar billede familienriis Nybegynder
23. februar 2008 - 21:12 #2
Jo, det har du ret i. :-)
Den kom til at se sådanne ud.

Tak for hjælpen.
Har du et svar.


Sub ImporterCSVfil()
  Flt = Flt & "Alle filer(*.*),*.*"
    Titel = "Vælg fil, som skal bearbejdes"
    fileToOpen = Application _
    .GetOpenFilename(Flt, , Titel)
    If fileToOpen <> False Then
    Worksheets("ARK1").Activate
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & fileToOpen, Destination _
        :=Range("A1"))
        .Name = "ARK1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 2, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
   
    End If
   
End Sub
Avatar billede kabbak Professor
23. februar 2008 - 21:18 #3
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