Stránka 1 z 1

jak makrem otevřít *.csv  Vyřešeno

Napsal: 01 pro 2011 21:51
od micchhal
Dobrý večer, dostal jsem se do problému při zpracování souborů *.csv makrem. V *.csv si stahuji účetní data z komerční banky, chci je zpracovávat makrem, ale když soubor makrem otevře, tak není rozdělený do budněk, ale je oddělený středníkama a celý řádek je nacpaný ve dvou buňkách, přitom pokud ho otevřu normálně manuálně, tak se pěkně rozdělí do jednotlivých buněk. Nevíte někdo co s tím? jak ho makrem otevřím, aby se otevřel jak potřebuji?

mám MS office 2010 na W7 64bit - pokud to má nějaký význam

pro otevření souboru používám

Kód: Vybrat vše

Workbooks.Open Filename:="C:\..............................\20110307.csv"

dá se to otevřít ještě nějak jinak?

jinak zkoušel jsem data z *.csv souboru načíst jako externí data a dělá to to samý....

Děkuji moc za rady

Re: jak makrem otevřít *.csv

Napsal: 01 pro 2011 22:23
od mederi
přitom pokud ho otevřu normálně manuálně, tak se pěkně rozdělí do jednotlivých buněk.

Skúšal si to manuálne otvorenie dokumentu zaznamenať do makra (nahrať makro)? Malo by to nahrať všetky použité parametre. Potom sa stačí už len na to makro pozrieť a upraviť na svoje potreby.

Re: jak makrem otevřít *.csv

Napsal: 01 pro 2011 22:45
od micchhal
taky jsem to zkoušel, jedinej parametr navíc se tam doplnil Origin:=xlWindows, dal jsem to do svého kódu, ale pořád to dělá to samé

Re: jak makrem otevřít *.csv

Napsal: 01 pro 2011 23:03
od guest
OpenText...

Re: jak makrem otevřít *.csv

Napsal: 01 pro 2011 23:14
od micchhal
místo open jsem dal OpenText, ale je to beze změny.... tak nevím co stím, porcovat ten dlouhej řetězec se mi moc nechce....

--- Doplnění předchozího příspěvku (01 Pro 2011 23:37) ---

nakonec jsem to vyřešil trošku přes ruku,ale funguje to

Kód: Vybrat vše

Workbooks.OpenText Filename:="C:\Data\Work\Kb-Výpisy\Účetní data\pokus\Archiv\20110318.csv"
Set a = ActiveWorkbook
Set A1 = a.ActiveSheet

Set A1a = A1.Range("a1:a100")
Dim x, y
For Each A1b In A1a
     x = A1b.Value
    y = 1
    Do
    x = x & A1b.Offset(0, y).Value
    y = y + 1
    If y > 40 Then Exit Do
    Loop
    A1b.Value = x
     
   
Next A1b

A1.Range("b1:x1000").Value = ""
A1.Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

nejprve jsem buňky na řádku přepsal do prvního sloupce (řádek byl rozdělen někdy do dvou, někdy do tři sloupců), potom jsem nahraným makrem převedl text do sloupců

tak hlavně že to funguje, každopádně vám děkuji za snahu pomoct