Stránka 1 z 1

VBA import y textoveho souboru

Napsal: 15 pro 2011 14:00
od Vevi
Ahoj, potrebovala bych, prosim, pomoct s importem dat z textoveho souboru do excelu.

Textovych souboru je nekolik. Vsechny maji podobny nazev: "xxxxxx_global_set", tzn. xxxxxx je nejake sesticisli. Jsou ulozeny v jedne slozce. Potrebuju je pomoci makra naimportovat do sesitu (klidne i do nekolika listu). Obsah textaku ma stejnou hlavicku a ve vsech je oddelovacem dvojtecka.

Problem je v tom, ze pocet tech souboru se meni a ja potrebuju, aby se vzdy po spusteni makra naimporotovaly postupne vsechny. Rucne to sice jde taky, ale je to zdlouhave.

Diky moc

Re: VBA import y textoveho souboru

Napsal: 15 pro 2011 19:42
od Uziv00
Netuším jak moc se liší VBA a VBS, ale pokud VBA umí příkazy, pak by stačilo načíst kolekci souborů v daném adresáři a do smyčky posílat jeden soubor za druhým.

Kód: Vybrat vše

Const path = "e:\adresar" 'cesta k adresáři
Dim Obsah, i
Dim fso, oFolder, oFiles, wsh           
Obsah = ""
Set wsh = WScript.CreateObject("WScript.Shell")
' Create FileSystemObject object to access the file system.
Set fso = CreateObject("Scripting.FileSystemObject")
' Get Folder object.
Set oFolder = fso.GetFolder(wsh.ExpandEnvironmentStrings(path)) 
Set oFiles = oFolder.Files         ' Get Files collection.
For Each i In oFiles           ' All files
    Obsah = i.Name
    ' sem vložit makro pro jeden soubor - jméno souboru je v proměnné Obsah
Next

Popřípadě by se to muselo celé napsat ve VBS, pak by xls soubor vytvořil VBS.

Re: VBA import y textoveho souboru

Napsal: 16 pro 2011 15:07
od Poki
ITccrowduv kod jsem trochu upravil a doplnil.

- Musi se doplnit/upravit cesta k souboru hned v prvnim radku kodu
- Textove soubory museji mit opravdu oddelene vodorovne zaznamy dvojtecko (dalsi radky klasicky odrakovanim), jinak jsem to zkousel na svym testovacim vzrocku a fungovalo to..

Kód: Vybrat vše

Sub texty()
Const PATH = "c:\Documents and Settings\XXXX\Plocha\Download\_Text\" 'cesta k adresáři

Dim SOUBOR As String
Dim i As Variant
Dim FSO As New filesystemobject
Dim oFolder As Folder
Dim oFiles As Files

Set FSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = FSO.GetFolder(PATH)
Set oFiles = oFolder.Files

For Each i In oFiles
    SOUBOR = i.Name

  Worksheets.Add After:=Sheets(Sheets.Count)
  ActiveSheet.Name = SOUBOR
   
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & PATH & SOUBOR, Destination:=Range("$A$1"))
        .Name = SOUBOR
        .FieldNames = True
        .PreserveFormatting = True
        .RefreshStyle = xlInsertDeleteCells
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePlatform = 1250
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileOtherDelimiter = ":"
        .TextFileColumnDataTypes = Array(2, 1, 2, 1) 'obecny format = 1, text format = 2
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
Next

Re: VBA import y textoveho souboru

Napsal: 10 kvě 2016 14:25
od snowy01
Ahoj
mám podobný problém. Potřeboval bych importovat proměnný počet .txt souborů obsahujících přibližně 25 řádků v tomto formátu

2016-01-08 20:16:37;1;173;2016-01-08 20:19:12;11,10,11,;0;2016-01-08 20:19:12;2016-01-08 20:21:51;2016-01-08 20:22:50

ideálně na jeden list pod sebe. Snažil jsem se upravit přiložený kód ale vždycky mi to hodí bug.
Díky moc