POMOČ!

Pomoč pri delu z MS Wordom
Odgovori
missy
Prispevkov: 40
Pridružen: To Apr 11, 2006 7:03 pm

POMOČ!

Odgovor Napisal/-a missy »

Pozdravljen, ponovno potrebujem vašo pomoč in sicer v naslednjem primeru (še vedno iz vaše knjige :D, str. 183 )

Napisli ste. da v makroju spremenjivka odgovor ni potrebna in da ga je mogoče napisati brez nje! Sedaj pa me zanima kako, ker meni tako kot sem napisala, shrani tako v primeru ko pritisnem ok in ko pritesnem križec!


primer iz knjige:
Sub zapridatoteko()

Dim odgovor as long

odgovor=MsgBox ("Ali želite shraniti spremembe?", vbOKCancel)

If (odgovor=vbOK) Then
ActiveDocument.Close wdSaveChanges
Else
ActiveDocument.Close wdDoNotSaveChanges
End If

End Sub


Pa še to me zanima, kako prirediš temu križcu, da ko pritisniš nanj, da se izvede close, pa v primeru ko mamo na voljo npr. od inputbox-a gumba OK in pa CANCEL, koko napišeš, da ko pritisne uporabnik cancel, da se izvajanje konča- to mi ni jasno!! Kako se to dela z obrazci sem si pogledla in sem razumela, v tem primeru pa ne vem kako to napisati!

Hvala za odgovor in lep večer še naprej!

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

Odgovor Napisal/-a admin »

Pozdravljeni,

1.
Prosim pišite smiselne naslove! Tematika 'Pomoč' ne namigne popolnoma ničesar o problemu in ko potem kdo za vami bere naslove tematike... Iz naslova ne izve ničesar!

2.
Rešujte en problem naenkrat! Najprej si pripravite testno kodo. Vedno začnite s testno kodo. Shranjevanje dokumeta je dokaj drastična akcij, ki zahteva, da imate dokument, da ga shranite, mu date ime.... Same komplikacije. Zato vedno začnte s kodo, ki pač samo izpiše, kaj bi naredila:

Koda: Izberi vse

Sub Testiraj()
    Dim odgovor As Long

    odgovor = MsgBox("Ali želite shraniti spremembe?", vbOKCancel)

    If (odgovor = vbOK) Then
        MsgBox "Zdaj bi shranil"
    Else
        MsgBox "NI HRANJENJA!!!"
    End If
End Sub
To je zdaj koda, ki je enakovredna vaši, le da ne zahteva dokumenta. Na njej ahko eksperimentirate in videli boste, da vse deluje tako kot pričakujete. Če pritisnete 'V redu' se bo izpisalo 'Zdaj bi shranil', če pa pritisnete 'Prekliči' ali stisnete križec, pa se b izpisalo 'NI HRANJENJA!'.

Tako koda deluje pravilno. In sedaj se znebite še spremenljivke odgovor, kar storite preprosto tako, da tisto, kar hrani prestavite v if stavek:

Koda: Izberi vse

Sub Testiraj()
    If (MsgBox("Ali želite shraniti spremembe?", vbOKCancel) = vbOK) Then
        MsgBox "Zdaj bi shranil"
    Else
        MsgBox "NI HRANJENJA!!!"
    End If
End Sub
To je to :).

Kar pa se tiče oenjenega problema, da se dokument vedn shrani pa je problem nekje drugje. Predstavljena koda je OK in če se dokument shrani jevzrok drugje!

3.
Nadalnjega vprašanja a naželost ne razumem dovolj natančno, da bi vam smiseln pomagal. Če želite izvajanje kode zaključiti je odvisno, kje se nahajate in kako jo žeite zaključiti. Ali končati zanko, skočiti iz IF stavka, povsem ustaviti izvajanje makra...

4.
Veliko veselja pri branju še vnaprej.
lp,
Matjaž Prtenjak
Administrator
Odgovori