< návrat zpět

MS Excel


Téma: Blikací obrazovka VBA rss

Zaslal/a 2.8.2017 11:31

Dobrý den je jedno co udělám, pokaždé mi bliká obrazovka už nevím co s tím, googlil jsem to a nic, nějaká rada? :O

Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
If Cells(1, 2) = Cells(3, 15) Then Call přidej

If Cells(1, 2) = Cells(4, 15) Then Call uber

If Cells(1, 2) = Cells(5, 15) Then Call násob

If Cells(1, 2) = "VYPNOUT" Then Call vypnout

If Cells(30, 1) = 1 Then Cells(30, 1) = 0

'kusy navíc
If Cells(1, 2) = "end" Then Cells(1, 2) = ""

If Cells(6, 15) = 11 Then Call jj

If Cells(6, 15) = Cells(7, 15) Then Cells(1, 2) = ""

If Cells(11, 2) = "1" Then Cells(1, 2) = ""

If Cells(11, 3) = "1" Then Cells(1, 2) = ""

If Cells(11, 4) = "1" Then Cells(1, 2) = ""

If Cells(11, 5) = "1" Then Cells(1, 2) = ""

end sub

Zaslat odpověď >

Strana:  1 2   další »
#037044
avatar
Čisticí utěrky na křišťálové koule přijdou příští týden.

Šmarjá člověče, máte tam milion volání procedur, změny jistojistě vyvolají další událost přepočtu (a tím pádem se procedura zacyklí, což si naštěstí Excel hlídá a po čase vypne)...citovat
#037053
avatar
Jaké je prosím možné řešení?citovat
#037054
avatar
Že by vymazať tú procedúru?citovat
#037055
avatar
Přinejmenším

na začátku
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

na konci
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

a nesmí si s tím hrát žádná volaná procedura.

Zbytek viz křišťálová koule.citovat
#037056
elninoslov
Riešenie ?
1. Opakujúce použitie Cells(1,2) nahradte tak, že iba raz si do premennej HDN = Cells(1,2).Value uložte hodnotu, a pracujte s premennou. Rovnako ak používate súvislú oblasť buniek Cells(11,2-5) načítajte si ju do premennej aHDN = Cells(11,2).Resize(4).Value a pracujte s poľom aHDN(riadok, stĺpec). Prestupovanie z listu do VBA je pomalé, a nevieme koľkokrát tieto testy prevádzate, môže to spomaľovať.
2. A s tým súvisí ďalšia vec - pridajte prílohu (!), aby bolo vidieť, čo robia volané procedúry. Zaregistrujte sa a môžete prikladať prílohy.
3. Možno bude pre Vás riešením vhodné použitie Application.EnableEvents (aj vypnutie aj zapnutie)...

Poznámky:
Používate tam Application.ScreenUpdating = False. Vraciate to niekde aj naspäť ?
Určite majú bunky v Cells(11,2-5) hodnotu "1" a nie 1 ?
Musí to byť vo Worksheet_Calculate ?citovat
#037071
avatar
Zasílám ukázku, problém je, že těch proměnných podobných je tam více a kalkuluje se i na jiném listě tu to problikne rychle, ale v mém celém souboru to bliká přes 2s :/ každou radu jak vylepšit svůj jinak funkční paskvil uvítám.citovat
#037072
avatar
Takže až keď zlyhajú všetky možnosti, tak treba vložiť prílohu? 2citovat
#037073
avatar
Jsem tu nový, takže jsem se musel zaregistrovat, snad příloha řekne vše, protože díky calculate fungují jiné listy, ale třeba to jde jinak 1citovat
#037074
avatar
No lúštiť kód nemienim.
Ale xlnc dal dostatočný návod ako to urobiť.
Aj elninoslov bod č.3 je dobrý. A nielen ten bod ale všetko.
Možno ešte pred ukončením procedúra by bolo vhodné dať to ešte prepočítať. Ale to nemienim stopovať.citovat
#037078
avatar
Problém je, že těch proměnných podobných je tam více a kalkuluje se i na jiném listě tu to problikne rychle, ale v mém celém souboru to bliká přes 2s :/citovat

Strana:  1 2   další »

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