< návrat zpět

MS Excel


Téma: Pomalá aktualizace rss

Zaslal/a 17.9.2010 15:46

Dobré odpoledne, co dělat pro to, aby makro běhalo co nejrychleji? Mám tabulku o cca 4 tisících řádcích, hodnoty do sloupce Z a potom od AA do AQ vzorce nad těmito daty. Vzorce vyplní makro v prvním řádku a pak rozkopíruje do všech řádků. A to mu trvá víc jak deset minut. Je to normální? Zas takovou plečku nemám, mám Windows 7 a Office 2007. Co udělat pro zrychlení? Na co si dávat pozor? Díky

Zaslat odpověď >

#002467
Začátečník
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).citovat
#002468
Jeza.m
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@citovat
#002473
avatar
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?citovat
#002474
avatar
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.citovat
#002500
Jeza.m
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@citovat
#002581
avatar
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?citovat
#002582
Jeza.m
Pokud te vzorec spočítáš makrem tak proč ne, ale bude-li to rychlejší to ti nepovím (možná) :-), zkus to ;-).

M@citovat
#002584
avatar
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?citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje