Import TXT datoteke

Pomoč pri izdelavi makrov
Odgovori
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Import TXT datoteke

Odgovor Napisal/-a PaPaDiZ »

Pozdravljeni

Obračam se na vašo pomoč. V Excelu sem posnel spodnji makro, ki importira točno določeno TXT datoteko z točno določeno širino posameznih stolpcev:

Koda: Izberi vse

Sub test()
'
' test Macro
' Macro recorded 11.5.2007 by bostjanp
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;P:\Podatki.txt" _
        , Destination:=ActiveCell)
        .Name = "Podatki"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlWindows
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileFixedColumnWidths = Array(11, 2, 3, 27, 10, 10, 9, 6, 8, 9, 6, 8, 31, 9, 9)
        .Refresh BackgroundQuery:=False
    End With
End Sub
Sedaj bi pa rad da namesto točno določene TXT datoteke, makro vpraša oz. odpre okno v katerem poiščem in izberem katerokoli TXT datoteko in jo pod istimi pogoji uvozi. (podobno kot če bi izbral v Excelu GetExternalData==>ImportTextFile)

Za odgovore se zahvaljujem
Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Nekaj takšnega...

Koda: Izberi vse

 Sub test()
  Dim IzbranaDatoteka
   
  IzbranaDatoteka = Application.GetOpenFilename
  If Not (IzbranaDatoteka <> False) Then Exit Sub
  
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & IzbranaDatoteka _
        , Destination:=ActiveCell)  .... in tako dalje ....
lp,
Matjaž Prtenjak
Administrator
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Odgovor Napisal/-a PaPaDiZ »

admin napisal/-a:Nekaj takšnega...

Koda: Izberi vse

 Sub test()
  Dim IzbranaDatoteka
   
  IzbranaDatoteka = Application.GetOpenFilename
  If Not (IzbranaDatoteka <> False) Then Exit Sub
  
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & IzbranaDatoteka _
        , Destination:=ActiveCell)  .... in tako dalje ....

Matjaž najlepša hvala za rešitev. Točno to sem želel.
Odgovori