Upraveno
Ten kód co si sem vložil běží 10 minut?
A když vypneš překreslování obrazovky a automatický přepočet listu? (viz soubor)
Jednoduše.
Řešení maticovým vzorcem. Jeho ukončení se provede trojkombinací CTRL+SHIFT+ENTER
Sakra ještě ten soubor.
Proboha odkud se berou ty soubory *.xls?
Při otevření hlásí chybu viz obr.
Předělal sem kód, protože vzorce vracely chybu #odkaz
a upravil rozsahy buněk. Né u všech souborů xls začínají data na řádku 31 !
Je to sice pomalé, ale vypadá to, že i snad funkční.
Otestuj.
zdroje:
Několik knih o VBA a internet, převážně zdejší fórum a youtube
WiseOwlTutorials
Excel Macro Mastery
Leila Gharani
atd...
No, to si to zadání, ale sakra změnil.
V příloze máš pokus o řešení. Kód je sice jako když pejsek a kočička vařili dort - původně sem se chtěl držet zvolenýho postupu a používat vzorce bez nutnosti soubory otevírat, což se povedlo jen částečně. Nakonec sem byl stejně dokopán k otevření souboru. Část dat se tedy tahá pomocí vzorců a další část je přes pole.
Kód dokáže načítat jak soubory xls tak xlsx nebo xlsm.
Jeden sešit sem pro ukázku uložil jako xlsx a upravil rozmístění dat, která nezačínala na řádku 31, jako v ostatních případech.
Možná se ukáže Elnino a dá tomu štábní kulturu
Udělal sem takový nástřel možného řešení.
Makro vytvoří současně seznam souborů i jejich hodnoty z buňky A1. Není potřeba spouštět 2 makra, vše se vyřeší v jednom cyklu.
K získání hodnot z jednotlivých listů sem použil metodu, kterou s oblibou používá Elninoslov©.
Nedochází k otevírání jednotlivých souborů, do buněk se vloží vzorec (odkaz) na buňku, který se následně převede na hodnotu. Makro je rychlejší.
PS: Samozřejmě by se dali udělat další úpravy, jména souborů a hodnoty by se načítaly do polí a následně až vložily do příslušných listů, což by mělo být zase o kousek rychlejší ...
Celé sem to několikrát přečet a není mi zcela jasný, jak si představuješ funkci.
Má se vytvořit seznam souborů ve složce a z toho seznamu se budou vybírat konkrétní soubory? Proč?
Buď si přes dialog rovnou vybereš konkrétní soubory a provedeš import dat, nebo ve smyčce projdeš celý adresář DATA a import provedeš ze všech souborů.
Jak píše Kabaka
=2000/86400 a buňku naformátuješ na čas což vrátí => 0:33:20
pak už jen sčítáš časy.
Napadlo mě předělat UDF funkci na odstranění diakritiky.
Výsledek v příloze.
Myslel si to takto: ???
Private Sub Workbook_Open()
Dim MaxRadek As Long
With List1
MaxRadek = .Cells(Rows.Count, "A").End(xlUp).Row
.Cells.FormatConditions.Delete
With .Range("A2:A" & MaxRadek & "").FormatConditions.Add(Type:=xlExpression, Formula1:="=$A2=1")
.Font.ColorIndex = 33
.Interior.ColorIndex = 6
End With
End With
End Sub
Třeba takto.
Předělal sem vymazávání řádků.
Nyní se mažou všechny až na konci makra.
Teoreticky by se měl průběh zrychlit.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.