Příspěvky uživatele


< návrat zpět

@eLCHa

Díky za odpověď,
s MSQuery to vypadá dobře, funkčně. Obzvlášť v tom případě, že se prvky do zdrojových tabulek budou přidávat a né ubírat. Tak se snažím MSQuery teď nějak pochopit, abych byl schopen použít správný odkaz na tabulky a co jste poslal v příloze vytvořit vlastní silou ;)
včeském Excelu:
Data > Z jiných zdrojů > Z Microsoft Query
Zde mám na výběr:
- Excel Files*
- MS Access Database*

Pokud dám vytvořit nový zdroj dat ve výběru ovladače pro typ databáze jsou na výběr (je jich tam více, ale relevantní asi budou):
- Driver do Microsoft Excel (*.xls)
- Microsoft Excel Driver (*.xls)
- Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
- Microsoft Excel-Treiber (*.xls)

Tak jestli můžete poradit kdepak se mám odpíchnout.

Jen jestli dobře chápu - jako zdroj dat (databázi) nastavím soubor na disku - nějaká přesná cesta včetně jednotky/adresáře. V mém případě odkazuji na právě otevřený soubor (soubor v kterém vytvářím ono MSQuery). Pokud se cesta změní, je třeba toto spojení upravit na nové umístění souboru.
(to bych případně pak viděl ve VBA při otevírání listu - pokud tedy jde to MSQuery vytvářet a upravovat makrem)

Zatím moc díky všem.

2 marjankaj:
díky za odpověď - zkoušel jsem to, ale automatizované mi to nepřijde. Bysme mohli v tomto opustit excel, vrátit se ke kalkulačkám, nebo počídatlům, no co špatného je proti papíru a tužce? 5

2 pepe74287:
díky moc za nasměrování, pokusil sem se to vše mírně poupravit, došel sem k výsledku:
=KDYŽ(ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví])<=ŘÁDKY(tab_1);INDEX(tab_1;ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví]);SLOUPEC()-SLOUPEC(tab_3)+1);INDEX(tab_2;ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví])-ŘÁDKY(tab_1);SLOUPEC()-SLOUPEC(tab_3)+1))
Ale jestli sem dopře pochopil, ani toto není řešení není plně automatizované - aby se délka tabulky dynamicky upravila (prodloužila/zkrátila) podle počtu řádků ve zdrojových tabulkách?

Ahoj,
všem excelu znalým.

Potřeboval bych dvě tabulky (říkejme jim třeba TAB1 a TAB2 - jsou na jednom listu - ale na tom asi nezáleží) sloučit tak aby výsledkem byla třetí tabulka, která by obsahovala všechny záznamy z TAB1 a TAB2. Určitě je víc způsobů jak toho docílit vzorci, makrem a podobně. Ale nevěřím že by přímo excel na toto neměl fukci. Hlavní problém bych s použitím vzorců měl s tím, pokud se změní počet položet v TAB1 nebo TAB2.

V příloze dávám vzor TAB1 a TAB2 a vedle toho výsledná tabulka, kterou bych rád aby se generovala automaticky změnou prvních dvou (data co tam jsou sem tam dodal ručně jen jako vzor, jak bych si přál aby vypadal výsledek)

Jen ještě zdůrazním, že mi jde o tabulky, které jsou tabulkou v excelu (je pomenovaná a ke sloupcům se dá přistupovat např =[@Sloupec2]) né jen prostou oblastí v sešitu kde mám zrovna data.

Děkuju všem za čas při čtení dotazu a případně za odpověď, nakopnutí či nasměrování.
Děkuju

Hledat sem se snažil ale buď je to tak primitivní funkce kterou se nikdo nezabýval a kadý jí má v malíčku, nebo se mi prostě nezadařilo zadat správný cyhhledávací termín.

Díky za spolupráci,
přiložím zde pro případné další hledající výsledný kód univerzálněji upravený, okomentovaný


Sub VytvorXML()
'Jako jméno výstupního souboru použije jméno původního XLS souboru a přidá příponu ".xml"
JmenoSouboru = Application.ThisWorkbook.Path & "\" & Application.ThisWorkbook.Name & ".xml"

'expotrovat jako XML (použije mapování "Document_Mapování", a je uloženo do aktuálného adresáře a jako jméno je použito jméno původního XLS souboru a přidáno ".xml")
ActiveWorkbook.XmlMaps("Document_Mapování").Export URL:=JmenoSouboru

'otevře v předchozím kroku exportovaný XML soubor pro čtení a jeho obsah uloží do proměnné strXML
Dim hf As Integer: hf = FreeFile
Open JmenoSouboru For Input As #hf
strXML = Input$(LOF(hf), #hf)
Close #hf

'otevře soubuor pro zápis a zapíše do něj původní strXML proměnnou, která projde přes funkci OstranEntity
Open JmenoSouboru For Output As #hf
Print #hf, OdstranEntity(strXML)
Close #hf
End Sub

Private Function OdstranEntity(ByVal aString As String) As String
aString = Replace(aString, "&lt;", "<")
aString = Replace(aString, "&gt;", ">")
OdstranEntity = aString
End Function

2 Palooo:
XML soubor nevytváří nic jiného než excel,žádný jiný program ani makro. XML vzniká exportem tabulky v excelovském souboru XLSX - "palubními" prostředky excelu (karta vývojář - část xml - export)

Zdravím,
v příloze zasílám ZIP, který obsahuje 4 soubory:
CDATA-excel.xlsx - excelovský soubor, který obsahuje tabulku, která má být poté exportována do XML
CDATA-export.xml - exportovaný XML (tak jak to excel vyexportuje nyní)
CDATA-export-ručně-opravený.xml - výsledný XML jak bych ho chtěl mít (z původního vyexportovaného ručně opraven v notepadu)
CDATA-schema.xsd - Schéma, které je namapováno ve xdrojovém XLSX souboru, podle tohoto se vytváří exportem XML

Doufám že už je to tedy jasnější. Pro zpřehlednění jsem vstupní data zjednodušil a zkrátil, ale vše "problematické" stále obsahuje.
Zas a znovu dopředu díky


Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

Alfan • 24.4. 16:32

Relativní cesta - zdroje Power Query

Alfan • 24.4. 15:44

Relativní cesta - zdroje Power Query

elninoslov • 24.4. 14:26

Jak odstraním duplicitní údaje

Mirek8 • 24.4. 12:13

Jak odstraním duplicitní údaje

elninoslov • 24.4. 8:57

Vyhledej

PavDD • 24.4. 8:56

Vyhledej

elninoslov • 24.4. 8:47