Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel: kopírování vybraných dat do *xml souboru

Vlastně to tak trochu navazuje na mé dřívější dotazy/pokusy. Tohle je finále :)

Mám v *xlsm sešitu list s výsledky, které jsou výhradně ve sloupci A, v řádcích 1-x, bez vynechání. Počet řádků je proměnlivý, od cca 5 klidně po 500.
Makro pro označení oblasti je jednoduché

Sub Oblast_XML()

    Cells(300, 1).End(xlUp).Offset(0, 0).Select
    Range(Selection, Selection.End(xlUp)).Select
    Selection.Copy

End Sub

Tuto vybranou oblast (pokaždé různě velkou) potřebuji nakopírovat do (makrem vytvořeného *xml souboru).

Ten název souboru mám pořešen, viz https://pc.poradna.net/questions/2962434-excel-jak-dostat-promennou-do-makra-pro-nazev-exportovaneho-souboru

Zbývá mi nějak vyřešit to samotné kopírování. V příkladu z předchozího odkazu (viz dále) jsem kopíroval vždy obsah buňky C17. Teď to bude A1 až A??, prostě ta vybraná pokaždé jinak "dlouhá" oblast. Název *xml souboru je v buňce C21.

Nástřel (řádek Data = ... pochopitelně nefunguje!):

Sub Tisk_XML()
Dim Data As String
Dim i As Integer

Data = Join(Application(List1.Range("A1:A??").Value))

i = FreeFile
Open ThisWorkbook.Path & "\" & Range("c21") & ".csv" For Output As #i

Print #i, Data,
Close #i

End Sub

Potřebuji nějak upravit tu oblast dat. Něco jako (vím, je to blbě) jsem tam naznačil, Data = Join(Application(List1.Range("A1:A??").Value))

Mohl bych tam možná nějak zapojit "pojmenovanou oblast", kdyby to první makro pokračovalo (v konkrétním případě bylo vybráno 13 řádků)

ActiveWorkbook.Names.Add Name:="oblast", RefersToR1C1:="=List1!R1C1:R13C1"
ActiveWorkbook.Names("oblast").Comment = ""

Ale neporadím si právě s tím proměnlivým počtem řádků. Ale tohle je možná zbytečný mezikrok, klíčové bude specifikovat (proměnlivou velikost oblasti) Data v tom druhém makru.

Jak na to?
Díky za tipy.

...já vím, poněkud přeexcelováno z mé strany... :-p

Řešení:

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tak pánové, tady sem skončil. Se.u se tu s tím od 10:00 a výsledek 0 ]:( Cesta jakési šablony, do kt…
Siki83 08.12.2019 15:50
Siki83
Bohuzel jsem na Macu, tak nemoho vyzkouset, ale tohle by melo pomoct vyresit to kodovani... https:/…
MaSo 09.12.2019 08:12
MaSo
Chlape, Ty bys zasloužil pořádnýho :beer: !!! Máš pravdu přes ten ADODB.Stream to funguje !!! Pro L…
Siki83 09.12.2019 23:20
Siki83
::) Koukám na to jako blázen. Není to pro mě španělská, ale mnohem cizokrajnější vesnice. Převelice… nový
L-Core 10.12.2019 07:13
L-Core
Muselo! :-D Problém byl fakt jen ve způsobu ukládání, to že L-Core skládá to xml, takovým exotickým… poslední
MaSo 10.12.2019 08:59
MaSo

Tak pánové, tady sem skončil. Se.u se tu s tím od 10:00 a výsledek 0 ]:(
Cesta jakési šablony, do které by se vkládala data nikam nevede. Výsledný soubor není validní.

Pokud xml vytvořím jako nový soubor v Notepad++ a nakopíruji do něj data z excelu má výslednou velikost 1,3 kB a je funkční !
Pokud xml vytvořím makrem se stejným obsahem je výsledná velikost 1,2 kB a soubor není validní.

Pokud xml soubor vytvořený makrem otevřu v náhledu pomoci TC (F3) má zmršenou interpunkci (Č, Ř ...), ale pokud jej otevřu pro úpravy (F4) vše je v pořádku kua !!!

VBA má na práci s xml knihovny, ale sem v (_!_) jak Baťa s dřevákama, netuším jak s tím pracovat.

Zpět do poradny Odpovědět na původní otázku Nahoru