< návrat zpět

MS Excel


Téma: odpocet a storno tl. rss

Zaslal/a 23.3.2024 22:05

Zdravím. prosím jak vyladit formulář a kod.
Chci , před otevřením sešitu zobrazit okno, kde jede odpočet, který odpočítá 5sec a pak spustí další proceduru. A pokud do této doby stisknu tl Storno, tak aby se tento form.HNED uzavřel a jen otevřel sešit.

Nyní , když stisknu Storno, stejně to čeká ...na pozadí až to odpočítá temch 5 sec.
Jde to nějak?...okamžitě všechny makra přerušit
Možná by pomohlo obecně vysvětlit, jak funguje v obecném formuláři tlačítko Storno, a tl Přerušit. Přerušit taky ukonší chod makra?

A ještě jeden dotaz, lze schovat křížek v pravém rohu formuláře?

Chci při startu zobrazit okno s informacemi o produktu, a vyžaduji třeba těch 5 sec.aby to uživatel viděl a nemohl to vykřížkovat. Má to prakticky každý program , když startuje.

Díky za tipy

Díky

Příloha: zip56363_start-odpocet-a-storno.zip (13kB, staženo 6x)
Zaslat odpověď >

#056364
Začátečník
...Nyní , když stisknu Storno, stejně to čeká ...na pozadí až to odpočítá temch 5 sec....
Protože není stisk tlačítka ošetřen tak, aby přerušil cyklus odpočtu. Zkuste si kód krokovat a uvidíte i příčinu toho, proč se cyklus nepřeruší.

...Možná by pomohlo obecně vysvětlit, jak funguje v obecném formuláři tlačítko Storno, a tl Přerušit. Přerušit taky ukonší chod makra?...
Obecně tlačítka fungují tak, jak je programátor naprogramuje.

Co myslíte tlačítkem Storno a co tlačítkem Přerušit?

...A ještě jeden dotaz, lze schovat křížek v pravém rohu formuláře?...
Jednodušší je zakázat stisk ikony zavření formuláře pomocí metody Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
Cancel = 1
End If
End Sub
CloseMode určuje příčinu vyvolání - 0=> zavření form z nabídky (křížek)
Cancel nastavením na jinou hodnotu než 0 zastaví událost QueryClose.citovat
#056367
avatar
...Protože není stisk tlačítka ošetřen tak, aby přerušil cyklus odpočtu. Zkuste si kód krokovat a uvidíte i příčinu toho, proč se cyklus nepřeruší.

..stačí dát do kodu tl."storno" EXIT DO ?

Private Sub Storno_Click()
Exit Do
'Start.Hide
Unload Me
End
End Subcitovat
#056368
Začátečník
Ne to nestačí a navíc by to skončilo chybou.
Příloha: zip56368_start-odpocet-a-storno.zip (18kB, staženo 4x)
citovat
#056369
elninoslov
Tak?
Příloha: zip56369_start-odpocet-a-storno-2.zip (20kB, staženo 5x)
citovat
#056370
avatar
add Elnino
Ano ,tak . jen dotaz,v tom OptionExplicit , to je k čemu prosím? Je to teda dost komplikované,ale to asi musí být.
Ten Now + TimeSerial(0, 0, 1) , co je to za parametry ?..umí to jen vteřiny, nebo i menší čas?
Děkuji
--------------------------------------------------------
add Začátečník
Když stisknu Storno, přeskočí se sice odpočet, ale až v dalším kroku next i, a makro,co se má spustit po odpočtu se stejně spustí, ikdyž jsem ho Stornem chtěl přerušit.

If konecForm Then 'MsgBox "zmačknul jsi storno"
Exit For
GoTo konec
End If

Mohl by jste to ještě upravit?...tedy jestli se nakonec nedostaneme do řešení kolegy Elnino.
Odskok GoTo konec, by měl přeskočit odpočet , ale on ještě jeden Next i načte, a zase spustí to co je v jeho bloku.citovat
#056371
elninoslov
Option Explicit
To slúži na to, aby debuger kontroloval, či máte definované všetky premenné. Aby ste nepoužil nedefinovanú premennú.

TimeValue("00:00:01")
TimeSerial(0, 0, 1)

je to isté, len jedno dá sekundu času z textového času, a druhé čísel jednotlivých zložiek času (hod, min, sek)

Menej ako sekunda? To je informačné okno, načo tam potrebujete desatiny, to nie sú stopky. Ak požadujete presnejší timer, tak treba použiť ďalšie API a systémový timer, ale s tým je problematická práca. Nesmiete pri ňom debugovať alebo pozastaviť makro, spadne Excel.citovat
#056372
avatar
Děkuju !

#056373
Začátečník

PavDD napsal/a:

If konecForm Then 'MsgBox "zmačknul jsi storno"
Exit For
GoTo konec
End If

If konecForm Then
Exit For
GoTo konec
End If

nechal jsem záměrně dvě možnosti jak vyskočit z cyklu
Exit for vyskočí za konec cyklu (Next i)
GoTo konec skočí na návěští konec, tedy přeskočí vše mezi Next i a návěští.
Stačí jen zakomentovat, nebo vynechat, nechtěné ukončení, v tomto případě Exit For

Jinak vynucení deklarace proměnných velice doporučuji včetně deklarace jejich datových typů. https://wall.cz/excel-navod/deklarace-promennych-a-prehled-datovych-typu-vba
Příloha: zip56373_start-odpocet-a-storno.zip (18kB, staženo 3x)
citovat
#056374
avatar
aha, ok, Děkuju ! Hezké Velikonocecitovat

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