Na knop Annuleren bij UserForm verschijnt toch het document nog

Status
Niet open voor verdere reacties.

roemelingd

Gebruiker
Lid geworden
28 sep 2004
Berichten
23
Mijn Word sjabloon met Userform werkt naar behoren. Ik heb echter nog een probleem.

Zodra ik besluit om het document toch niet te gebruiken en op annuleren klik, verdwijnt het dialoogvenster wel, maar het sjabloon opent verder wel. Ik zou graag zien dat het sjabloon dan ook weer afsluit (of niet opent). Kan iemand mij helpen met welke code ik hiervoor moet gebruiken? En ook op welke plek ik dit moet zetten in mijn macro?

Alvast bedankt!
 
Laatst bewerkt:
roemelingd,

Je uitleg is niet echt uitgebreid maar ik zal twee tips geven

Als je code alleen in een userform staat lijkt dit me afdoende

Code:
'de knop annuleren
Private sub CommandButtonX_Click()
     Me.hide
    Unload me
end sub

Als je echter in een gewone module een userform oproept (wat ik vermoed) kun je bijvoorbeeld een globale variabele gebruiken die je een waarde WAAR of ONWAAR geeft zodat je weet welke knop je hebt ingedrukt op je userform

Zet dan in een gewone module iets als:

Code:
Public openfile as Boolean

Sub open_file()
Userform1.show
If openfile then
    'code om het sjabloon te openen
End If

End sub

en in je userform:

Code:
Private sub CommandButton1_Click()
'de knop annuleren
    openfile = False
     Me.hide
end sub

Private sub CommandButton2_Click()
'de knop "openen"
    openfile = True
     Me.hide
end sub
 
Laatst bewerkt:
Ik weet niet of de oplossing van Mark al voldoende was, anders heb ik hier nog een andere mogelijkheid voor je om te gebruiken als je bijvoorbeeld een userform met meer dan 2 knoppen hebt:

Hier de code in je userform voor een OK en een Cancel button bijvoorbeeld:
Code:
Private Sub OK_Click()
Me.Tag = 1
Me.Hide
End Sub

Private Sub Cancel_Click()
Me.Tag = 0
Me.Hide
End Sub
Je kunt meerdere knoppen toevoegen en ze allemaal een andere cijfer bij Me.Tag = <cijfer> geven

En dan heb je hier de code die je moet toevoegen na je userform.show:

Code:
Sub main()
Select Case UserForm1.Tag
                Case 0
                    'hier je code als je op de Cancel kno gedrukt hebt.
                    Unload UserForm1
                    GoTo Einde:
                Case 1
                    'hier je code als je op de OK knop gedrukt hebt.
                    Unload UserForm1
            End Select

'hier de rest van je hele script, met aan het einde
Einde:
End Sub
 
Zet je de vraag dan nog even op opgelost
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan