< návrat zpět
MS Excel
Téma: Vytvoří list, když neexistuje 
Zaslal/a vitekv 11.3.2017 20:53
Pomůže mi prosím někdo stvořit rychlé makro, které projde zadanou složku a prohledá v ní všechny .xls soubory.
V každém z nich je ve výchozím stavu buď list s názvem "listA", nebo s názvem "ListB", nebo ideálně oba.
Potřebuji, aby pokud existuje jen jeden z nich, tak v daném sešitu vytvořil chybějící list tak, že z existujícího zkopíruje sloupce A až D a pojmenuje jej podle chybějícího listu.
Cílem je tedy, aby ve složce po provedeném makru byly ve všech sešitech oba listy, jak listA, tak listB.
V ukázce je sešit, kde původně neexistoval list s názvem ListB. Takto by se měl makrem vytvořit z listuA.
Děkuji za rady
Příloha:
35482_sesit1.xlsx (10kB, staženo 24x)
eLCHa(13.3.2017 8:21)#035500
@elninoslov
Seznam listů v sešitu zjistíte pomocí ADO
connection.OpenSchema(20) '20 = adSchemaTables
Načte do RecordSet, takže máte jedniý přístup do zavřeného sešitu.
citovat

Ja uz to mam hotove pomocou PQ. Teda zistenie listov vsetkych suborov, aj filter inych ako ListA a ListB. Len som na ceste na mobile. Ostatne veci bude treba samozrejme dorobit makrom - vkladanie listov. Len nemam pocit, ze by PQ na 5 suboroch bolo rychlejsie. Ked pridem, dam riesenie...
citovat
elninoslov(14.3.2017 18:29)#035527 
Zisťovanie validných listov (pre tento prípad) pomocou PowerQuery je síce fajn hračka, ale podľa mňa je to neúmerne pomalé. Možno robím niečo zle, ale oproti ExecuteExcel4Macro je tento PQ variant 2x pomalší.
Potom teda ešte vyskúšať to ADO, to už sa mi ale fakt nechce.
Môžete pls niekto preveriť tú rýchlosť PQ?
citovat
eLCHa(15.3.2017 12:04)#035533
ADO 7,844
XLM 7,848
PQ 17,352
Z toho mála co o PQ zatím vím mi to dává i smysl. ADO i XLM provádí v podstatě 1 operaci, kdežto PQ má sérii kroků. Ale to jen tipuji příčinu.
Mezi ADO a XLM by bylo ještě zajímavé srovnávat kontrolu a doplnění více listů. Ale na to nemám čas.
citovat