Ik heb een checklist gemaakt met een aantal macros.
In dit formulier moeten cellen B4&D4 ingevuld zijn om het bestand te mogen opslaan.
Ik heb een knop Save and Quit toegevoegd die ook controleerd of cellen B4 en D4 zijn ingevuld voordat dit uitgevoerd kan worden. In beide gevallen dient er een messagebox te verschijnen waarin word aangegeven dat deze cellen ingevuld moeten worden.
Deze codes werken naar behoren.
Nu heb ik een macro toegevoegd dat wanneer in kolom D het woord NOK gezet word er een messagebox dient te verschijnen met een reminder om een bepaalde actie uit te voeren.
Sindsdien krijg ik bij het gebruiken van de save and quit knop een Runtime error 13 'type mismatch' melding. Als ik deze op end klik slaat het bestand op en sluit netjes. Wanneer ik wil Debuggen sluit hij direct Excel.
Kan iemand mij hiermee verder helpen?
In dit formulier moeten cellen B4&D4 ingevuld zijn om het bestand te mogen opslaan.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'If the six specified cells do not contain data, then display a message box with an error
'and cancel the attempt to save.
If WorksheetFunction.CountA(Worksheets("Sheet1").Range("B4,D4")) < 2 Then
MsgBox "File will not be saved" & vbCrLf & _
"unless B4 & D4 have been filled in!"
Cancel = True
Else
Application.Quit
End If
End Sub
Ik heb een knop Save and Quit toegevoegd die ook controleerd of cellen B4 en D4 zijn ingevuld voordat dit uitgevoerd kan worden. In beide gevallen dient er een messagebox te verschijnen waarin word aangegeven dat deze cellen ingevuld moeten worden.
Code:
Sub Button4_Click()
'When button is used check if B4 & D4 have value, then save and quit.
ThisWorkbook.Save
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'If the specified cells do not contain data, then display a message box with an error
'and cancel the attempt to save.
If WorksheetFunction.CountA(Worksheets("Sheet1").Range("B4,D4")) < 2 Then
MsgBox "File will only be saved" & vbCrLf & _
"unless B4 & D4 have been filled in!"
Cancel = True
Else
Application.Quit
End If
End Sub
Deze codes werken naar behoren.
Nu heb ik een macro toegevoegd dat wanneer in kolom D het woord NOK gezet word er een messagebox dient te verschijnen met een reminder om een bepaalde actie uit te voeren.
Code:
'Remove Case Sensitivity
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
'When "NOK" is in column D, then display a message box
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
If Target.Value <> "NOK" Then Exit Sub
MsgBox "Please make MN when downtime is >15min!"
End Sub
Sindsdien krijg ik bij het gebruiken van de save and quit knop een Runtime error 13 'type mismatch' melding. Als ik deze op end klik slaat het bestand op en sluit netjes. Wanneer ik wil Debuggen sluit hij direct Excel.
Kan iemand mij hiermee verder helpen?
Bijlagen
Laatst bewerkt: