• 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.

Problemen met msg boxen

Status
Niet open voor verdere reacties.

Bandito

Gebruiker
Lid geworden
8 okt 2012
Berichten
201
Hallo,

Ik ben een klachtensysteem aan het maken. Nu ben ik naar mijn mening al redelijk ver en wil ik de puntjes op de i zetten.

Ik zou het leuk vinden dat de gebruiker een melding krijgt wanneer bepaalde cellen (laten we zeggen cel F13) niet heeft ingevuld. In deze msgbox zal dan staan de de gebruiker alsnog cel F13 moet invullen alvorens hij de klacht kan invoeren. Nu heb ik wat code geschreven in module 1 en wanneer cel F13 leeg is krijg ik inderdaad een Msgbox te zien maar de resterende code wordt dan alsnog uitgevoerd (tabblad wordt gekopieerd etc). Dit is natuurlijk niet de bedoeling want zo heeft de msgbox geen nut. Kan iemand mij helpen wat ik hier aan toe moet voegen?


Nu heeft de cel Volgnr ook een zo'n soort probleem, wanneer deze niet wordt ingevoerd crashed het formulier. Ik zou dit ook graag opvangen met een msgbox zodat wanneer gebruikers een foutje maken met het volgnr (niet invoeren of al een bestaand volgnr) niet in de visual basic editor terecht komen.

Kan iemand mij wat wegwijs maken met msgboxen?

Bij voorbaat dank,
Met vriendelijke groet,

Bekijk bijlage Klachten.xlsm
 
Code:
Sub Opslaan()
    Dim rij As Long
    On Error Resume Next
    If Range("F13") = "" Then
        If MsgBox("Niet alle velden zijn ingevuld, wilt u toch opslaan?", vbYesNo, "Opslaan als") = vbNo Then Exit Sub
    End If
    With Sheets("alles")
        rij = .[A65536].End(xlUp).Row + 1
        .Cells(rij, "A").Value = [=Volgnr]
        .Cells(rij, "B").Value = [=Datum]
        .Cells(rij, "C").Value = [=Bedrijf]
        .Cells(rij, "D").Value = [=Omschrijving]
        .Cells(rij, "E").Value = [=Behandeld]
        .Cells(rij, "F").Value = [=Kosten]
        .Cells(rij, "G").Value = [=Afgehandeld]
        .Cells(rij, "H").Value = [=Inciden]
        .Cells(rij, "I").Value = [=Indeling]
    End With
End Sub
 
Hallo Warmebakkertje,

Als eerst dank u voor uw antwoord.
Helaas werkt het nog niet zoals het moet. Wanneer ik deze code gebruik en de cel F13 leeglaat (Vul wel Volgnr in) wordt de msgbox wel weergegeven maar het tabblad is dan al wel gekopieerd. De uitkomst bij de Msgbox maakt niets uit want de code wordt toch uitgevoerd.

Bekijk bijlage Klachten.xlsm
 
Dan moet je de volgorde aanpassen in je macro achet de button:

Code:
Sub Combinatie()
Sheets("Blanco").Select
Call Opslaan

Sheets("Blanco").Select
Call Kopie

Sheets("Blanco").Select
Call Wissen
End Sub
 
Hey Cobbe,

Bedankt voor je antwoord. Ik krijg nu inderdaad de msgbox voordat het tabblad gekopieeerd wordt maar wanneer ik nee antwoord bij de Msgbox kopieeerd hij het tabblad alsnog. En dit zou eigenlijk niet moeten.
 
Dit komt omdat je 3 aparte macro's maakt voor 1 bewerking. Je verlaat de 1ste macro maar komt door de verwijzing terecht in de 2de enz...
Ofwel combineer je alles in 1 macro ofwel voeg je bij elke macro de controle voor een lege cel toe.
 
Dan moet je dit aanpassen:

Code:
Public key As Integer

Sub Combinatie()

Sheets("Blanco").Select
Call Opslaan

If key = 1 Then Exit Sub

Sheets("Blanco").Select
Call Kopie


Sheets("Blanco").Select
Call Wissen
End Sub

en in de macro Opslaan
Code:
Sub Opslaan()
[COLOR="#FF0000"]key = 0[/COLOR]
Dim rij As Long
    On Error Resume Next
    If Range("F13") = "" Then
        If MsgBox("Niet alle velden zijn ingevuld, wilt u toch opslaan?", vbYesNo, "Opslaan als") = vbNo Then [COLOR="#FF0000"]key = 1: [/COLOR]Exit Sub
    End If
 
Dank u beide voor uw antwoorden, het werkt perfect nu.

Ik heb alles in 1 macro weten te verwerken en dan werkt het wel zoals het zou moeten. Nu is tegelijkertijd mijn probleem van het crashen van het volgnr ook meteen opgelost. Wanneer daar nu niks in wordt gevoerd wordt het tabblad Blanco(2) genoemd en gaat hij niet naar Visual Basic editor.

Nogmaals bedankt!

Bekijk bijlage Klachten.xlsm
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan