"opozorilo"

Pomoč pri izdelavi makrov
Odgovori
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

"opozorilo"

Odgovor Napisal/-a sonofagun »

Zdravo.

Je v VBA možno naredit nekakšno "opozorilo" v smislu Loading + kakšne črtice (primer:http://www.google.si/search?hl=sl&tbm=i ... 80&bih=925). Za čas poteka makroja imam Screen.Updating na OFF in v tem času, ko se nekaj dogaja v ozadju bi želel imet na zaslonu podoben znak.
Upam, da sem dovolj jasno razložil, kaj želim (in ne znam naredit)...

Hvala in lep pozdrav

Gregor
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: "opozorilo"

Odgovor Napisal/-a admin »

Risati ga morate sami in to znotraj makra. Ko se makro izvaja (verjetno v kakšni zanki), daste v zanko (na vsakih X korakov) neko kodo, ki :
  • postavi ScreenUpdating na TRUE,
  • doriše nekaj črtic /pikic /znakov in
  • postavi ScreenUpdating na FALSE
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: "opozorilo"

Odgovor Napisal/-a sonofagun »

Kaj pa če bi s kodo vklopil neko sliko.gif za čas izvajanja makroja?
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: "opozorilo"

Odgovor Napisal/-a admin »

Slike ne morete kar "vklopiti", ker je nimate kam postaviti. Narediti morate nov obrazec (UserForm) in nanjo "obesiti" sliko in v kodi odpreti ter prikazati obrazec, izvesti makro ter nato zapreti obrazec.
lp,
Matjaž Prtenjak
Administrator
bluespeed
Prispevkov: 47
Pridružen: Po Nov 20, 2006 8:25 pm

Re: "opozorilo"

Odgovor Napisal/-a bluespeed »

Ali pa recimo napišeš nek Msgbox v kodi, tam kjer želiš da uporabnik počaka in da ti ne klika po nepotrebnem.
Omogočiš screen_update in na koncu ponovno onemogočiš.

Vsaj tako jaz rešujem zadevo za tiste, ki postanejo nestrpni ob izvajanju makrojev. 8)

Moje skromno mnenje. :oops:
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: "opozorilo"

Odgovor Napisal/-a sonofagun »

Sem malo poskušal, pa mi nekak te rešitve ne uspe spravit v tako obliko kot bi rad. Makro "Uredi" uredi dokument (tega urejanja ne bi rad gledal).
Del moje kode bi izgledal tako:

Koda: Izberi vse

Sub list()

Application.ScreenUpdating = False

Call Uredi

Application.ScreenUpdating = True

End Sub
Kje tukaj uvrstim tisti Msgbox?

Lp, Gregor
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: "opozorilo"

Odgovor Napisal/-a admin »

MSGBox nikamor, saj bi vam slednji ustavil izvajanje makra, dokler bi uporabnik ne pritisnil tipke OK.... Tega pa verjetno ne želite ;)
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: "opozorilo"

Odgovor Napisal/-a sonofagun »

To mi je jasno. Poskušal sem uporabiti rešitev od uporabnika "bluespeed", pa mi ni uspelo... :(
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: "opozorilo"

Odgovor Napisal/-a admin »

Čakajte; če vam je jasno, da bo ta rešitev ustavila izvajanje makra pa ste jo vseeno poskusili implementirati? Zakaj? No saj implementacija je dokaj trivialna. V vas makro 'Uredi' pač na poljubno mesto dajte:

Koda: Izberi vse

MsgBox "To je neko opozorilo!"
lp,
Matjaž Prtenjak
Administrator
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Re: "opozorilo"

Odgovor Napisal/-a cedra »

Lahko pa poizkusite opozorilo rešiti s "Statusbarom", t.j. vrstica levo spodaj, kjer ponavadi piše "Pripravljen"
Če imate npr. neko zanko, ki se zavrti recimo 1000 x, potem lahko zapišete nekako tako:

Koda: Izberi vse

For x = 1 To 1000
    Application.StatusBar = "Opravljeno " & x & _
    " dejanj od " & 1000
'''''zanka se nadaljuje
'......
na koncu pa morate "Statusbar" sprostiti:

Koda: Izberi vse

Application.StatusBar = False
Statusbar se namreč spreminja tudi, če imate prej v kodi preprečeno osveževanje ekrana.
Ne vem pa, če vam moj predlog ustreza...
lp,

cedra
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: "opozorilo"

Odgovor Napisal/-a sonofagun »

:oops: Pri predlogu z Msgbox-om sem imel napačno predstavo, da je tako opozorilo ves čas izvajanja makroja na zaslonu, dejansko pa samo uporabnika lahko opozorim, da se bo začel makro izvajat... Moja napaka :-)
Pri predlogu cedre pa stvar deluje, bo treba uporabnika pač opozorit, da lahko v statusni vrstici spremlja kaj se dogaja in koliko še manjka do konca.

Še enkrat več hvala za pomoč.

Lep dan
bluespeed
Prispevkov: 47
Pridružen: Po Nov 20, 2006 8:25 pm

Re: "opozorilo"

Odgovor Napisal/-a bluespeed »

napaka... :D
Odgovori