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

wat doe ik fout?

Status
Niet open voor verdere reacties.

rocknroadie

Gebruiker
Lid geworden
5 sep 2016
Berichten
184
TIJdens het before close event wil ik n aantal dingen checken. een van de zaken die ik ga checken is vanop welk moment er "gesloten" wordt. (dit gebeurt adhv de variabele "sluitpunt"


het probleem is echter dat ik bij "booking" de vraag stel of me zeker is dat men wil sluiten omdat er nog niet bewaard werd (bewaren gebeurt met een knop op het blad) als het sluitpunt niet booking is vliegt hij echter onmiddellijnk naar de laatste end if.
als ik de regels

answer = MsgBox("Are you shure you want to quit SMOS? you didn't save the SIS!", vbExclamation + vbYesNo, "SMOS V6.66")
If answer = vbYes Then

echter in commentaar zet, dan gaat hij bij "false" naar de volgende else....

als het "sluitpunt" echter wél booking is dan gebeurd alles wel normaal.....

wat doe ik in godsnaam fout?



Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim answer As String

 If SluitKnop = True Then
    ThisWorkbook.Unprotect "Jolien1968 !"
    Sheet1.Visible = xlSheetVisible
    For i = 2 To Sheets.Count
      Sheets(i).Visible = xlSheetVeryHidden
    Next
      Sheet1.Activate
      X = Sheet2.Range("P1").Value
      Y = Sheet2.Range("P3").Value
    
    If X >= Y Then
        MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "Have a nice day!"
        Y = Y + 1
        Sheet2.Range("P3").Value = Y
        ThisWorkbook.Save
        ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
        Application.DisplayAlerts = False
     Else
        Y = 1
        MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "Have a nice day!"
        Y = Y + 1
        Sheet2.Range("P3").Value = Y
        ThisWorkbook.Save
        ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
        Application.DisplayAlerts = False
     End If
 Else

   If sluitpunt = "booking" Then
      answer = MsgBox("Are you shure you want to quit? you didn't save!", vbExclamation + vbYesNo, "are you really shure?")
      If answer = vbYes Then
        If X >= Y Then
           MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "Have a nice day!"
           Y = Y + 1
           Sheet2.Range("P3").Value = Y
           ThisWorkbook.Save
           ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
           Application.DisplayAlerts = False
        Else
           Y = 1
           MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "Have a nice day!"
           Y = Y + 1
           Sheet2.Range("P3").Value = Y
           ThisWorkbook.Save
           ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
           Application.DisplayAlerts = False
        End If
   Else
     If sluitpunt = "Bookingmenu" Then
        answer = MsgBox("Are you shure you want to quit smos?", vbQuestion + vbYesNo, " are you really shure?")
        If answer = vbNo Then
           Cancel = True
        Else
 

                End If
            End If
          End If
        End If
       End If
 
Laatst bewerkt:
ik heb het opgelost gekregen door een end if toe te voegen IN de "routine" ipv op het einde van de routine

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim answer As String

 If SluitKnop = True Then
    ThisWorkbook.Unprotect "Jolien1968 !"
    Sheet1.Visible = xlSheetVisible
    For i = 2 To Sheets.Count
      Sheets(i).Visible = xlSheetVeryHidden
    Next
      Sheet1.Activate
      X = Sheet2.Range("P1").Value
      Y = Sheet2.Range("P3").Value
    
    If X >= Y Then
        MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "SMOS V6.66 - Have a nice day!"
        Y = Y + 1
        Sheet2.Range("P3").Value = Y
        ThisWorkbook.Save
        ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
        Application.DisplayAlerts = False
     Else
        Y = 1
        MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "SMOS V6.66 - Have a nice day!"
        Y = Y + 1
        Sheet2.Range("P3").Value = Y
        ThisWorkbook.Save
        ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
        Application.DisplayAlerts = False
     End If
 Else

   If sluitpunt = "booking" Then
      answer = MsgBox("Are you shure you want to quit SMOS? you didn't save the SIS!", vbExclamation + vbYesNo, "SMOS V6.66")
      If answer = vbYes Then
        
           X = Sheet2.Range("P1").Value
           Y = Sheet2.Range("P3").Value
        If X >= Y Then
           MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "SMOS V6.66 - Have a nice day!"
           Y = Y + 1
           Sheet2.Range("P3").Value = Y
           ThisWorkbook.Save
           ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
           Application.DisplayAlerts = False
        Else
           Y = 1
           MsgBox Sheet2.Cells(Y, 15).Value, vbOKOnly, "SMOS V6.66 - Have a nice day!"
           Y = Y + 1
           Sheet2.Range("P3").Value = Y
           ThisWorkbook.Save
           ActiveWorkbook.Protect "Jolien1968 !", Structure:=True, Windows:=True
           Application.DisplayAlerts = False
        End If
     [COLOR="#0000FF"]End If[/COLOR]
   Else
     If sluitpunt = "Bookingmenu" Then
        answer = MsgBox("Are you shure you want to quit smos?", vbQuestion + vbYesNo, "SMOS V6.66")
        If answer = vbNo Then
           Cancel = True
        Else
 

                End If
            End If
          End If
        End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan