Opozorilo med delovanjem makrojev

Pomoč pri delu z MS Excelom
Odgovori
bluespeed
Prispevkov: 47
Pridružen: Po Nov 20, 2006 8:25 pm

Opozorilo med delovanjem makrojev

Odgovor Napisal/-a bluespeed »

Pozdravljen!

Zanima me, kako med delovanjem makrojev v excelu prikažeš mogoče kakšno sliko in opozorilo na ekranu, da se izvajajo makroji in da je potrebno počakat?


LP peter
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Pozdravljen

- Oblikujte si formo z željenim opozorilom.
- V prvi vrstici kode jo pokažite.
- v zadnji vrstici kode jo skrijte.

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

Odgovor Napisal/-a admin »

Pozdravljeni,

Najlažje to naredite tako, da odprete nov obrazec (UserForm) in nanj postavite sličico ali pa nanj kaj napišete ('Prosim počakajte...' ali kaj podobnega).

Potem ta obrazec na začetku makra prikažete, na koncu pa ga uničite. Če se vaš obrazec recimo imenuje UserForm1, potem makro izgleda takole:

Koda: Izberi vse

Sub MojDolgiMakro()
  UserForm1.Show vbModeless

  ' koda mojega zelo dolgega makra

  Unload UserForm1
End Sub
lp,
Matjaž Prtenjak
Administrator
bluespeed
Prispevkov: 47
Pridružen: Po Nov 20, 2006 8:25 pm

Odgovor Napisal/-a bluespeed »

Hvala za odgovor.
Sicer pa med makroji slika izgine, zakaj?

Sedaj imam napisano takole:

Private Sub Workbook_Open()
UserForm1.Show vbModeless
Application.DisplayAlerts = False
MsgBox ("bla bla bla")
Makro6
Cells(2, 6).Value = Date
Preberi
PrenesiPlanBS
MsgBox (" bla bla bla")
Application.DisplayAlerts = True
Unload UserForm1
End Sub

LP peter
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Probajte to:

Koda: Izberi vse

Private Sub Workbook_Open() 
UserForm1.Show vbModeless 
UserForm1.Repaint
.
.
.
.
Lp
bluespeed
Prispevkov: 47
Pridružen: Po Nov 20, 2006 8:25 pm

Odgovor Napisal/-a bluespeed »

Hvala, hvala....sedaj že dela, tudi brez dodatka. Problem je bil, ker sem vmes druga okna odpiral in pol ni slike več osvežil.

Me pa zanima, kaj pomeni "vbModeless"?

lp peter
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

vbModales - ob odprti formi imate možnost uporabljati spodnji list
vbModal - ob odprti formi nimate možnosti uporabljati spodnji list

Lp
jure121
Prispevkov: 19
Pridružen: Sr Nov 26, 2008 4:29 pm

Odgovor Napisal/-a jure121 »

Zdravo,
v mojem primeru delovanje makra traja kar nekaj minut in bi zato rad opozorilo naredil bolj dinamično. Rad bi torej, da se v opozorilu del besedila izmenjuje in obvešča, kateri proces se izvaja <formiranje podatkov, interakcija v x, interakcija v y...>.

Lahko bi sicer naredil več obrazcov, ki bi jih po vrsti prikazoval in skrival, ampak me zanima, če obstaja kakšen bolj simpatičen način.

Hvala za odgovor

Lp, Jure
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Pozdravljeni.

Najbolje, da v sporočilni formi naredite novo Javno Funkcijo Public Function. V tej funkciji, ki sprejme en parameter, se spremeni tekst na formi. Potem pa med izvajanjem makra vsakokrat, ko želite kaj izpisati na sporočilno formo, pokličete tisto funkcijo in kot parameter vnesete sporočilo. Da ne bom dolgovezil, primer:

Koda: Izberi vse

Public Function SpremeniSporocilo(novoSporocilo)
     Me.Label1.Caption = novosporocilo
End Function
Potem pa iz makra kličete:

Koda: Izberi vse

Private Sub vasMakro()
...
SpremeniSporocilo("Spreminjam besedilo ...")
...
SpremeniSporocilo("Zapiram okna ...")
End Sub

Bi bilo pa potrebno preizkusiti, če bo slučajno potrebno kakšen DoEvents dodat
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
Odgovori