• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Afbreken opeenvolgende messageboxen mbv 'annuleer'-knop

  • Onderwerp starter Onderwerp starter Koemi
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Koemi

Nieuwe gebruiker
Lid geworden
9 sep 2008
Berichten
4
Ik heb een invulformulier die uiteindelijk geprint en via mail verzonden wordt. Werkt prima, totdat er een schrijffout gemaakt wordt...

Als voorbeeld:

Code:
Ip1 = InputBox("Naam 1?")
[b100] = Ip1
Ip2 = InputBox("Naam 2?")
[b116] = Ip2
Ip3 = InputBox("Naam 3?")
[b120] = Ip3

De inputboxen hebben 2 knoppen: 'Ok' en 'Annuleren'.

Als nu bij Ip1 al een fout is gemaakt en je drukt op 'ok', dan ga je automatisch direct door naar Ip2. Als je dan wilt annuleren, ga je eerst door naar Ip3.

Zo heb ik er nog 13 op een rij staan, dus in mijn geval moet je nog wel een paar keer door klikken...

Graag wil ik de volgende twee mogelijkheden overwegen:
1. Kan ik het niet zo maken dat als ik op annuleren klik, dat de gehele macro wordt afgebroken?
2. Of is het wellicht mogelijk knoppen toe te voegen als 'vorige' of 'volgende'?


Groet,
koemi
 
Code:
If Ip1 = "" Then Exit Sub
 
Het werkt inderdaad, maar nog niet helemaal zoals ik het wil.

1.
Mijn makro wordt gestart door een 'hoofd'-macro, welke gevuld is met een aantal aparte kleine macro's. De door mij gevraagde macro is ook zo'n kleine macro.

Als ik het nu maak zoals is beschreven, dan wordt niet de hoofdmacro afgesloten, maar de kleine macro. Dan wordt er daarna nog een keer geprint en gemaild, wat helemaal niet nodig is op dat moment (dit zijn de andere opvolgende kleine macro's). Het mooist zou zijn als dat cel A1 op blad1 actief wordt en direct daarna de 'hoofd'-macro wordt afgebroken.

2.
Soms worden de inputboxen on-ingevuld doorgeklikt of ge-enter-t. Het probleem is dat dat vergelijkbaar is met

If Ip1 = "" Then Exit Sub

Het betekent nu dat er altijd iets moet worden ingevuld. Is dit de enige manier ter herkenning van het aanklikken van de 'Annuleer'-knop, of zijn er nog andere mogelijkheden denkbaar?


Groet,
Rob K.
 
Antwoord = MsgBox("Wil je doorgaan?", vbOKCancel, "Mijn titel")
If Antwoord = vbCancel Then Exit Sub

De macro zal beëindigd worden wanneer men op Cancel drukt.

ScreenShot034.png


Ik heb dit onderwerp ook uitgebreid besproken op mijn blog.
 
Of in één regel.

Code:
If MsgBox("Wil je doorgaan?", vbOKCancel, "Mijn titel") = vbCancel Then Exit Sub
 
Vraag is niet helemaal opgelost, maar de link met de Blog heeft mij weer wat meer op weg geholpen.

Bovendien wil ik nog een stap verder: eens kijken of ik met Userforms wat meer kan spelen. Dat lijkt mij voor mijn toepassing interessanter, duidelijker en eenvoudiger. En het oogt ook wat profssioneler.

Slotje.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan