
Nejprve bych ještě zkusil vypnout automatické přepočítávání vzorců a pak optimalizaci smyčky, která provádí "rozkopírování".
Jinak bez zdrojového makra těžko soudit. Ale na ten počet se mi to zase nezdá příliš (samozřejmě pokud je zapnutý automatický přepočet buněk).

Na začátek makra zkus vložit:
Application.screenupdating = False
a nakonci makra to zase povolit.
Mělo by to urychlit běh bez průběžného zobrazování změn.
M@

Děkuji za radu.
"Application.screenupdating = False" - tím se vypne automatické přepočítávání vzorců, nebo vedle tohoto musím ještě vypnout automatické přepočítávání v nastavení Excelu?

Ještě jsem ale možná zapomněl zmínit důležitou věc, a to, že mám sešit propojený do Accessu. Funguje to tak, že si zaktualizuji data (to je v pohodě), překopíruju jako hodnoty na nový list a tam provádím výše uvedené výpočty.

Screenupdating vypne jen okamžité vykreslování, ne přepočítávání, toto bych asi nevypínal, kdysi jsem to zkoušel a trochu jsem narazil, že se to promítlo do exceleu jiných uživatelů u jiných souborů - což jsem do dnes nepochopil, ale pak jsem je musel všechny obejít a pozapínat jim to :-).
Dalo by se nuceně vypnout na začátku kódu a na konci zase zapnout, ale já už to nepoužívám - přináší to problémy.
S accessem by problém být neměl.
M@

Napadlo mne, zda by nezrychlilo běh makra to, kdyby do buňky se místo vzorce zapisoval rovnou výsledek jako hodnota, šlo by to nějak?

Pokud te vzorec spočítáš makrem tak proč ne, ale bude-li to rychlejší to ti nepovím (možná) :-), zkus to ;-).
M@

Ano, ale jak to napsat. Mám dosti složitý vzorec Range("Af2").FormulaR1C1 = _
"=SUMIFS('Zdroj transakce'!C8,'Zdroj transakce'!C21,""P"",'Zdroj transakce'!C1,'Přehled dlužníků'!RC1,'Zdroj transakce'!C5,"">""&Parametry!R2C10-7,'Zdroj transakce'!C5,""<=""&Parametry!R2C10)"
A já bych chtěl, aby mi to do té AF2 zapsalo místo vzorce rovnou výsledek jako hodnotu. Jak to napsat ve VBA?