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

Opgelost MSG Box met if statement voor het verlaten van werkblad

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Cor de Snor

Gebruiker
Lid geworden
27 okt 2001
Berichten
72
Beste lezer(es), ik wil een MSG Box zichtbaar maken als bepaalde waarden nog niet zijn ingevuld voordat je het werkblad wordt verlaten. Ik gebruik nu:

Private Sub Worksheet_Deactivate()
If Range("AP27") <> Range("AT27") Then
MsgBox "Nog niet alle partijen zijn ingevuld", vbExclamation, "WAARSCHUWING"
End If
End Sub

Maar dan verschijnt de MSG Box pas als het nieuwe werblad al zichtbaar is
 
misschien is dit een optie.
Code:
Private Sub Worksheet_Deactivate()
If Range("AP27") <> Range("AT27") Then
    MsgBox "Nog niet alle partijen zijn ingevuld", vbExclamation, "WAARSCHUWING"
    Me.Activate
End If
End Sub
 
Dan wel even die Me.Activate boven de MsgBox zetten.
 
meer dan 20 jaar lid en toch nog een voorbeeldbestandje vergeten?
 
Sorry voor het voorbeeldbestand, bij deze heb ik hem toegevoegd. Het toevoegen van "Me.Activate" voor of na de MSG Box heeft geen effect. Ik krijg eerst de volgende sheet te zien an daarna ps de MSG Box.
 

Bijlagen

Werkt hier prima:
Code:
Private Sub Worksheet_Deactivate()
    If Range("B46") = 1 Then
        Me.Activate
        MsgBox "Nog niet alle partijen zijn ingevuld", vbExclamation, "WAARSCHUWING"
    End If
End Sub
 
Dankjewel voor je reactie, Als ik nu overschakel naar een ander werkblad wordt de MSG Box zichtbaar maar na het klikken op OK maar dan wordt het nieuwe werkblad niet zichtbaar.
 
Dat is toch ook de bedoeling?
 
Misschien werkt dit?..Niet geprobeerd...

Code:
Private Sub Worksheet_Deactivate()
If Range("AP27") <> Range("AT27") Then
 ActiveSheet.DeActivate = false

    MsgBox "Nog niet alle partijen zijn ingevuld", vbExclamation, "WAARSCHUWING"
     Else:
   Worksheets(*"Huppelepup").Activate

End If
End Sub
 
ActiveSheet.DeActivate = false bestaat niet.
Daarnaast kan je in een Sheet_Deactivate sowieso geen Activesheet functies gebruiken.

@cor:
Als je wel die MsgBox wilt zien zonder het nieuwe werkblad te zien, maar na een klik op Ok toch dat nieuwe werkblad wilt activeren, doe dan dit:
Code:
Private Sub Worksheet_Deactivate()
    Static chg As Boolean
    If chg Then
        chg = False
        Exit Sub
    End If
   
    If Range("B46") = 1 Then
        chg = True
        nsh = ActiveSheet.Name
        Me.Activate
        MsgBox "Nog niet alle partijen zijn ingevuld", vbExclamation, "WAARSCHUWING"
        Sheets(nsh).Activate
    End If
End Sub
 
Zoals gezegd, Edmoor, had ik niets geprobeerd. Maar heb wel weer wat geleerd. Handig, dit forum...
 
Daar is Helpmij voor :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan