» Poradna » Programy

Excel - modal formulář

 |   | 

Pro ostatní uživatele tvořím excelovský soubor (excel 2000) s velkým množstvím vzorců a funkcí. Při změně vstupních dat dochází k přepočítání těchto údajů. Potřeboval bych, aby se po dobu tohoto přepočtu objevil můj formulář s informací o tom, že excel "pracuje" (bohužel, ne každý totiž sleduje status bar, kde tato informace je rovněž ). Formulář jsem vytvořil, ale pokud ho v kódu nastavím jako modální, běh makra (a tím i přepočet dat na listu) se po jeho zobrazení zastaví. Pokud ho nastavím jako nemodální, přepočet dat proběhne, ale formulář se objeví pouze jako rám s bílou plochou (jakoby bez ovládacích prvků a tím i napsané výzvy ke strpení). Jak zabezpečit, aby byl formulář při běhu makra ve "správném stavu" a přitom tento běh nezastavil? Dík.

Mohlo by vás také zajímat

Odpovědi na otázku

 |   | 

Pro nemodální okno to chce za příkaz "form.Show" přidat příkaz "form.Refresh"

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

UserForm1.ShowUserForm1.Repaint

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Díky, UserForm1.Repaint je ten příkaz. Nyní je problém v tom, že se mi tento formulář zobrazí pouze v případě provedení nějaké akce uživatele za běhu makra (kliknutí myší, stisk klávesy apod.), jinak se během přepočtu nezobrazí. Domnívám se, že čeká, až doběhne výpočet, který má zřejmě prioritu před zobrazenim formuláře. Napadají mě tři řešení, ani s jedním si bohužel nevím rady .1. Vnutit excelu, aby před zahájením přepočtu zobrazil formulář (v kodu mám tento příkaz samozřejmě na začátku - bez požadovaného efektu).2. Nasimulovat v rámci chodu makra některou z výše popsaných akcí (klik,...)3. Vytvořit formulář ve stylu ProgressBar. Nenapadá mě ale, na jaké mezní hodnoty bych ho měl napojit (jinak řečeno, jak vyhodnotit kolik buněk se už přepočítalo a kolik ne, zda přepočet probíhá či zda už skončil).Možná je i jiné řešení, které mě nenapadlo. Máte někdo nějaký nápad? Dík.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Formulář, Přepočet