Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel: uživatelské ukončení makra

Mám makro, navázané na rozevírací seznam, něco jako (jednotlivé "Case" tady nevypisuji kvůli přehlednosti, mají funkci předem nastaveného filtrování řádků podle zadaných podmínek):

Sub FiltrText()
Range("G5").Select
'  odemčení listu
    ActiveSheet.Unprotect
'   !!!!!!!!!!!!!!!!!!!
Select Case ActiveCell
Case 1
...
Case 2
...
Case 3
...
End Select
'  (zamčení listu "deník")
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
End Sub

V jeho průběhu potřebuji, aby uživatel zvolil, zda pokračovat nebo makro přerušit. Aby na něho vyskočilo okýnko s "pokračovat" a "zrušit makro". Mělo by to být na místě, kde mám v kódu "!!!!!!!!!!", ale nebude mi vadit, když to bude na začátku každého "Case".

Něco podobného, jako když tam dám

MsgBox Prompt:="Pozor", Buttons:=64, Title:="Vyskakovací okno"

Tohle ale samozřejmě neumí makro přerušit, po kliknutí pokračuje dál..

Myslím, že jsou dvě cesty (neumím ani jednu):
1. vyskakovací okno, které má takovou formuli, že po "přerušit" bez dalšího makro přímo ukončí
2. po kliknutí na "přerušit" následuje If-Then-Else a makro buď pokračuje kódem v Case nebo skočí za End Select.

Rád bych to měl jako klasické makro v Module, protože v kódu listu už nějaké "Private Sub" mám a netuším, zda by se to nehádalo. Tyhle "Private Sub" (klasický VBA) moc neovládám, tam jsem hodně odkázán na druhé. Vůbec třeba netuším, jak v něm "vyrábět" ovládací prvky.

Poraďte, jak na to.
Díky moc!

A slibuji, že tohle je na nějakou dobu můj poslední excelovský dotaz ;-)

Předmět Autor Datum
Však to je jednoduché. Jednak môžeš otestovať návratovú hodnutu MsgBox, a podľa toho vieš čo sa stla…
pozorovateľ 29.10.2017 11:32
pozorovateľ
If MsgBox("Stop Macro?", vbYesNo) = vbYes Then End
Dwane Dibbley 29.10.2017 11:32
Dwane Dibbley
Díky moc! Tak jednoduché, musím se ještě hodně učit..
L-Core 29.10.2017 11:58
L-Core
A slibuji, že tohle je na nějakou dobu můj poslední excelovský dotaz ;-) Prečoooo? Ešteeee! :-D Ko… poslední
robert13 30.10.2017 09:21
robert13

Však to je jednoduché. Jednak môžeš otestovať návratovú hodnutu MsgBox, a podľa toho vieš čo sa stlačilo. Druhak, môžeš si vytvoriť okienko aj s tlačítkami podľa ľubovôle. To je asi aj jednoduchšie, len si klikáš, a procedúry robí vizualko za teba. A už len dopĺňaš vlastný kód.

Zpět do poradny Odpovědět na původní otázku Nahoru