Avatar billede rabitjosph Juniormester
19. november 2007 - 08:48 Der er 9 kommentarer og
1 løsning

Import txt file til xls

Jeg vil gerne importere txt file til xls, og kender god xls import funktion, men i nedestående eksempel kan jeg ikke så godt bruge denne funktion, til tider er det stor mængde data der skal importeres.

Kan jeg lave en makro der kan hjælpe ?


PRIS    BRUTTO    F’RDIG  KASSERET    KASS. PCT 
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1000      42,0      42,0        0,0        0,00         
1060      27,0      21,8        5,2        19,31         
1070      1,0      0,4        0,6        58,00     
2000      6,0      5,6        0,4        6,25       

6320        28        24          4        14,29
7220        10        4          6        60,00
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
TOTAL:    1945      1579        366        18,82
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ


GRUPPEBETEGNELSE            START        SLUT    KASS%
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ENKELT og          CIV      70,00      64,21      8,28
DOBBEL            MIL        0,00        0,00      0,00
                  HIR        0,00        0,00      0,00
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ES og DS TOTAL              70,00      64,21      8,28
Avatar billede supertekst Ekspert
19. november 2007 - 10:39 #1
Hvad består problemet i?
Avatar billede rabitjosph Juniormester
19. november 2007 - 11:29 #2
Problemet er når jeg importere i xal så kan jeg ikke få værdier
i en celle, som det eks. jeg har vist, så vil der nogle af
værdierne som bliver "hugget" over.

Så jeg tror at jeg er nød til at lave en makro der kan gøre det.
Teksten på txt filen vil være det samme hvergang, så en skabelon
ville kunne gøre det ?
Avatar billede supertekst Ekspert
19. november 2007 - 11:36 #3
Er det decimaltalene, der volder problemer?
Avatar billede rabitjosph Juniormester
19. november 2007 - 12:00 #4
Nej, men det er at få hver værdi i hver sin celle, samt med overskrift

Hvordan vil du få sat overstående eks. ind i et excel regneark ?
Avatar billede supertekst Ekspert
19. november 2007 - 12:05 #5
OK - vender tilbage
Avatar billede supertekst Ekspert
19. november 2007 - 12:42 #6
Har du mulighed for at sende en kopi af tekstfilen til pb@supertekst-it.dk

Herefter kan jeg se, hvilket skilletegn der måtte være mellem felterne - ellers skal makroen teste på et antal blanke.
Avatar billede mikker Nybegynder
20. november 2007 - 12:34 #7
Hvis du copy-paster fra en txt fil ind i Excel, bør du få det hele i en kolonne (medmindre du har lavet tekst til kolonner før i samme ark).

Hvis du importerer og herefter sorterer - inden du laver tekst til kolonner kan du muligvis få et brugbart resultat?
Det vil give mere manuelt arbejde og jeg kan ikke se ud fra dit eksempel om det vil ødelægge noget andetsteds i din txtfil.

- Mikker
Avatar billede supertekst Ekspert
20. november 2007 - 17:52 #8
Koden er indlagt i Ark1 - sti til tekstfil skal tilpasses:

Public Sub importer()

Rem Stiangivelsen nedenfor skal tilpasses
Rem =====================================
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Documents and Settings\pb\Skrivebord\1911ImportXls\Aflevering\Test.txt" _
        , Destination:=Range("A1"))
       
        .Name = "Test"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 28591
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
   
    udførJustering
End Sub
Private Sub udførJustering()
    sletCelle "B72:B73"
    sletCelle "B77:B79"
    sletCelle "B81"
   
    justerCelle "A85"
    justerCelle "A86"
    justerCelle "A87"
   
    justerCelle "A89"
    justerCelle "A90"
    justerCelle "A91"
   
    justerCelle "A93"
    justerCelle "A94"
    justerCelle "A95"
End Sub
Private Sub sletCelle(cadr)
Dim adr
    Set adr = Range(cadr)
    adr.Select
    Selection.Delete Shift:=xlToLeft
End Sub
Private Sub justerCelle(cadr)  'Fjern = & indsæt apostrof
Dim adr
    Set adr = Range(cadr)
    adr.Select
    indhold = ActiveCell.Formula
    ActiveCell.Value = "'" + Mid(indhold, 2)
End Sub
Avatar billede rabitjosph Juniormester
20. november 2007 - 18:31 #9
Super job, thx
Avatar billede supertekst Ekspert
20. november 2007 - 20:51 #10
Takker...
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
Kurser inden for grundlæggende programmering

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