Runtime error 13 'type mismatch' op formulier

Status
Niet open voor verdere reacties.

mvb1987

Nieuwe gebruiker
Lid geworden
12 feb 2021
Berichten
3
Ik heb een checklist gemaakt met een aantal macros.

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

  • TEST.xlsm
    21,1 KB · Weergaven: 22
Laatst bewerkt:
1. Gebruik svp code tags rondom de VBA-code
2. Plaats een voorbeeldbestand
 
Ik zou als gebruiker niet vrolijk worden van al die meldingen dat ik 'iets verkeerd' gedaan zou hebben.
Voorkom meldingen achteraf.
Maak het ontwerp zo procedureel ergonomisch (stapsgewijs) dat de gebruiker geen 'fouten' kan maken.
 
Ik zou als gebruiker niet vrolijk worden van al die meldingen dat ik 'iets verkeerd' gedaan zou hebben.
Voorkom meldingen achteraf.
Maak het ontwerp zo procedureel ergonomisch (stapsgewijs) dat de gebruiker geen 'fouten' kan maken.

Ik snap wat je bedoelt SNB, helaas is in de praktijk gebleken dat naam en datum vaak vergeten worden in te vullen (bewust of onbewust is discutabel), terwijl het erg waardevolle informatie is.
De andere melding is alleen maar een reminder dat er een bepaalde actie uitgevoerd dient te worden.
Dus in my opinion valt het wel mee met alle meldingen, wil alleen de 2 belangrijkste zaken binnen het document afbakenen met behulp van deze pop-ups.
 
Voorkomen is beter dan vermelden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan