Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i#
If Not bAltF4 Then
Cancel = True
'MsgBox "Sluit het Rooster met de toetsen [ALT]+[F4]", vbInformation
SendKeys "%{F8}CloseFile{Enter}", False
Exit Sub
End If
bAltF4 = False
bClose = True
If Sheets(shOfferte).Visible = xlSheetVeryHidden Then
GoTo L900
End If
Sheets(shRooster).Select
' CommentaarToolTipGrootte
GoTo L900
L900:
Screen "On", 37
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim r%, rl%, sPath$, sFilename$, aDir() As String, sMsg$, i#
If ActiveSheet.Name = shFactuur Then
Cancel = True
If Cells(13, 4) = "" Then
MsgBox "Factuurnummer niet ingevuld", vbCritical, "PRINT FACTUUR"
Exit Sub
End If
End If
Screen "Off", 38, True
iEventNr = Cells(1, 3)
With Sheets(shRooster)
r = 2
Do
r = r + 1
If .Cells(r, kStatus) = txNr Then
MsgBox "Evenement " & iEventNr & " niet gevonden", vbCritical, "FOUT"
Cancel = True
Exit Do
End If
If .Cells(r, kEVT) = iEventNr Then
If ActiveSheet.Name = shFactuur Then
If InStr(1, .Cells(r, kStatus), ".7", vbTextCompare) = 0 _
And InStr(1, .Cells(r, kStatus), ".8", vbTextCompare) = 0 _
And InStr(1, .Cells(r, kStatus), ".9", vbTextCompare) = 0 Then
MsgBox "Factuur is nog niet gecontroleerd", vbCritical, "FOUT"
Exit Do
End If
.Cells(r, kStatus) = Replace(.Cells(r, kStatus), ".7", ".8", 1, , vbTextCompare)
condFormat
EVTNaam = .Cells(r, kEVT - 3)
EVTDatum = .Cells(r, kEVT - 2)
EVTLog = txFactuurGeprint & " met nr " & Cells(13, 4)
AddLog ""
EVTLog = "kolom 4 gevuld met " & .Cells(r, kStatus) & " door " & .Cells(rInUse, kInUseDoor)
AddLog ""
If txMessage <> "" Then
If MsgBox(txMessage & Chr(10) & "Toch afdrukken?", vbYesNo, "Factuur") <> vbYes Then
Exit Do
End If
End If
End If
Exit Do
End If
Loop
End With
If ActiveSheet.Name = shFactuur Then
sPath = ActiveWorkbook.Path & "\gegenereerde facturen\"
If InStr(1, sPath, "_Rooster\gegenereerde facturen\", vbTextCompare) = 0 Then
MsgBox "Sluit dit bestand en open het vanuit de map _Rooster", vbCritical, _
"AFDRUK GAAT FOUT"
ActiveWorkbook.Close
Exit Sub
End If
sFilename = "Factuur " & _
Cells(13, 4) & "-" & Cells(15, 4) & ".pdf"
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat xlTypePDF, sPath & sFilename
If Year(Now()) <> Cells(1, 1) Then
Cells(1, 1) = Year(Now())
Cells(1, 2) = 0
End If
Cells(1, 2) = Cells(1, 2) + 1
Cells(13, 4) = Format(Cells(1, 1), "0000") & "-" & Format(Cells(1, 2), "0000")
Erase aDir
aDir = Split(sPath, "\", , vbTextCompare)
sMsg = "Het PDF bestand van de factuur is te vinden in de map:" & Chr(10)
For i = 0 To UBound(aDir)
sMsg = sMsg & Application.WorksheetFunction.Rept(" ", i) & aDir(i) & Chr(10)
Next i
sMsg = sMsg & Chr(10) & _
"met de naam " & Chr(10) & Chr(10) & sFilename & Chr(10) & Chr(10) & _
"Verplaats het bestand naar de map van het evevenement"
MsgBox sMsg, vbInformation, "FACTUUR AANGEMAAKT"
Cells(13, 4) = ""
End If
Screen "On", 38, True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sSheet As String
If SaveAsUI Then
MsgBox "Sorrie, maar Bewaren als, is niet toegestaan", vbCritical, "No Save As"
Cancel = True
Exit Sub
End If
Screen "Off", 30
sSheet = ActiveSheet.Name
If ThisWorkbook.Name <> sBESTANDSNAAM Then
If MsgBox("Dit Rooster heeft niet de juiste naam voor het Rooster" & Chr(10) & Chr(10) & _
"Aanpassingen in dit bestand zullen geen invloed hebben op het origineel" & Chr(10) & _
"Het origineel heeft de naam " & sBESTANDSNAAM & Chr(10) & Chr(10) & _
"Wil je doorgaan?", vbYesNo, "EVENEMENTEN") = vbNo Then
Screenon
ActiveWorkbook.Close SaveChanges:=False
ActiveWorkbook.Save
End If
Else
SetVersie
End If
Sheets(shRooster).Select
Sheets(shRooster).Cells(2, 3) = "Bewaard: " & Now()
EVTNaam = "Save bestand"
EVTDatum = "nu"
EVTLog = "Save bestand"
AddLog ""
If bClose Then
If MsgBox("Wil je het bestand vrijgeven?", vbYesNo) = vbYes Then
EVTNaam = "Sluit bestand"
EVTDatum = "nu"
EVTLog = "Sluit bestand met vrijgave"
AddLog ""
Sheets(shRooster).Cells(rInUse, kInUseDoor) = ""
Sheets(shRooster).Cells(rInUse, kSindsTS) = ""
Else
EVTNaam = "Sluit bestand"
EVTDatum = "nu"
EVTLog = "Sluit bestand met vrijgave"
EVTLog = "Sluit bestand zonder vrijgave"
End If
delete_validation
VerbergSheets
Else
Sheets(sSheet).Select
End If
Screen "On", 30
End Sub
Private Sub Workbook_Open()
Screen "Off", 28
Application.OnKey "%{f4}", "CloseFile"
CheckVersie
ShowSheets
bAltF4 = False
bClose = False
ActiveWorkbook.RefreshAll
Sheets(shRooster).Select
Reset_Show
GeleArcering
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
If Not ThisWorkbook.ReadOnly Then
If Sheets(shRooster).Cells(rInUse, kInUseDoor) <> "" Then
If Sheets(shRooster).Cells(rInUse, kInUseDoor) <> Application.UserName Then
If MsgBox("Het bestand wordt aangepast door " & Sheets(shRooster).Cells(rInUse, kInUseDoor) & " sinds " & Sheets(shRooster).Cells(rInUse, kSindsTS) & Chr(10) & _
"Wil je doorgaan?", vbYesNo) = vbNo Then
ActiveWorkbook.Close SaveChanges:=False
ActiveWorkbook.Save
Else
ThisWorkbook.ChangeFileAccess mode:=xlReadOnly
End If
End If
Else
Sheets(shRooster).Cells(rInUse, kInUseDoor) = Application.UserName
Sheets(shRooster).Cells(rInUse, kSindsTS) = Now()
On Error Resume Next
ActiveWorkbook.Save
On Error GoTo 0
Sheets(shRooster).Cells(rInUse, kSindsTS) = Now()
EVTNaam = "Open bestand"
EVTDatum = "nu"
EVTLog = "Open bestand"
AddLog ""
End If
End If
If ThisWorkbook.Name <> sBESTANDSNAAM Then
If MsgBox("Dit Rooster heeft niet de juiste naam voor het Rooster" & Chr(10) & Chr(10) & _
"Aanpassingen in dit bestand zullen geen invloed hebben op het origineel" & Chr(10) & _
"Het origineel heeft de naam " & sBESTANDSNAAM & Chr(10) & Chr(10) & _
"Wil je doorgaan?", vbYesNo, "EVENEMENTEN") = vbNo Then
Screenon
ActiveWorkbook.Close SaveChanges:=False
ActiveWorkbook.Save
End If
End If
condFormat
Tel_Activiteit 9999
Screen "On", 28
Positie
End Sub
=============================================================================================================
Sub Screen(mode As String, nr As Long, Optional bProtect As Boolean)
If nr > 44 Then nr = nr / 0
If mode = strOn Then
If nr = nrScreenOff _
Or nrScreenOff = 0 Then
nrScreenOff = 0
If bProtect Then ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Screenon
End If
Else
' MsgBox "nr=" & nr, vbOKOnly
If nrScreenOff = 0 Then
nrScreenOff = nr
End If
If bProtect Then ActiveSheet.Unprotect Password:="rBFvGy4S"
Screenoff
End If
End Sub
Sub Screenoff()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
End Sub
Sub Screenon()
On Error Resume Next
nrScreenOff = 0
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Calculate
Application.EnableEvents = True
On Error GoTo 0
End Sub