VBA import y textoveho souboru

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Vevi
nováček
Příspěvky: 7
Registrován: květen 11
Pohlaví: Žena
Stav:
Offline

VBA import y textoveho souboru

Příspěvekod Vevi » 15 pro 2011 14:00

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

Reklama
Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23605
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBA import y textoveho souboru

Příspěvekod ITCrowd » 15 pro 2011 19:42

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.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: VBA import y textoveho souboru

Příspěvekod Poki » 16 pro 2011 15:07

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

snowy01
nováček
Příspěvky: 1
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Re: VBA import y textoveho souboru

Příspěvekod snowy01 » 10 kvě 2016 14:25

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Import PDF do excelu Příloha(y)
    od luko02420 » 13 kvě 2023 11:29 » v Kancelářské balíky
    18
    3573
    od luko02420 Zobrazit poslední příspěvek
    16 kvě 2023 11:27
  • PowerQuery - import dat do sloupců Příloha(y)
    od MK_Vs » 31 říj 2023 10:00 » v Kancelářské balíky
    9
    2121
    od MK_Vs Zobrazit poslední příspěvek
    02 lis 2023 09:26
  • VPS Hosting pro import vlastního VM (proxmox)
    od FIDLIK » 20 říj 2023 21:16 » v Vše ostatní (sw)
    0
    1728
    od FIDLIK Zobrazit poslední příspěvek
    20 říj 2023 21:16
  • Tisk ELD souboru
    od Jandak » 30 dub 2023 09:53 » v Problémy s hardwarem
    4
    1143
    od Grander Zobrazit poslední příspěvek
    09 čer 2023 21:31
  • Přenos souborů SD - USB flash bez PC
    od Asanoth » 29 črc 2023 17:35 » v Sítě - hardware
    11
    2069
    od Grander Zobrazit poslední příspěvek
    30 črc 2023 15:20

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti