Zit met een hersenkraker (voor mij dan)...
Ik heb 4 sheets met vba-scripts gemaakt waar ik met een entryform gegevens opsla een ander blad.
In mijn eerste file werkt deze script perfect maar als ik deze in mijn tweede (en 3e en 4e) gebruik krijg ik steeds die foutmelding.
Effe voor het plaatje:
Bestanden klanten, charters, laadplaats, losplaats.
Ieder bestand heeft "data" en "entry" blad (KL-Data, KL-Entry, CH-Data, enz...)
Bestand klanten met deze script werkt.
maar de script in charters en de andere files, waar ik na 100x alles nakijken concludeer (m.i.) dat ik geen tikfout heb gemaakt, werken niet.
Zodra ik mijn velden invoer en ik wil opslaan, dus vba oproep voor validate, komt de 1004-melding.
Onderstaande voor de duidelijkheid de volledige script.
Hier is de regel .Range("L7").Interior.Color = xlNone geel gearceerd.
Het verwijderen van de With frm werkt ook niet.
Dan geeft hij dezelfde fout in de sub charterwissen aan op dezelfde regel als in validate.
Deze fout komt ook bij de overige 2 bestanden.
Wat doe ik fout???
Ik heb 4 sheets met vba-scripts gemaakt waar ik met een entryform gegevens opsla een ander blad.
In mijn eerste file werkt deze script perfect maar als ik deze in mijn tweede (en 3e en 4e) gebruik krijg ik steeds die foutmelding.
Effe voor het plaatje:
Bestanden klanten, charters, laadplaats, losplaats.
Ieder bestand heeft "data" en "entry" blad (KL-Data, KL-Entry, CH-Data, enz...)
Bestand klanten met deze script werkt.
Code:
Option Explicit
Function ValKlant() As Boolean
Dim frm As Worksheet
Set frm = ThisWorkbook.Sheets("KL-Entry")
ValKlant = True
With frm
.Range("L7").Interior.Color = xlNone
.Range("L9").Interior.Color = xlNone
.Range("L11").Interior.Color = xlNone
.Range("L13").Interior.Color = xlNone
.Range("L15").Interior.Color = xlNone
.Range("L17").Interior.Color = xlNone
.Range("L19").Interior.Color = xlNone
.Range("L21").Interior.Color = xlNone
.Range("L23").Interior.Color = xlNone
.Range("AO7").Interior.Color = xlNone
.Range("AO9").Interior.Color = xlNone
.Range("AO11").Interior.Color = xlNone
.Range("AO13").Interior.Color = xlNone
.Range("AO15").Interior.Color = xlNone
.Range("AO17").Interior.Color = xlNone
.Range("AO19").Interior.Color = xlNone
.Range("AO21").Interior.Color = xlNone
End With
'Validating area
If Trim(frm.Range("L7").Value) = "" Then
MsgBox "Klantnaam is leeg.", vbOKOnly + vbInformation, "Klantnaam"
frm.Range("L7").Select
frm.Range("L7").Interior.Color = vbRed
ValKlant = False
Exit Function
End If
maar de script in charters en de andere files, waar ik na 100x alles nakijken concludeer (m.i.) dat ik geen tikfout heb gemaakt, werken niet.
Zodra ik mijn velden invoer en ik wil opslaan, dus vba oproep voor validate, komt de 1004-melding.
Onderstaande voor de duidelijkheid de volledige script.
Code:
Option Explicit
Function ValCharter() As Boolean
Dim frm As Worksheet
Set frm = ThisWorkbook.Sheets("CH-Entry")
ValCharter = True
With frm
.Range("L7").Interior.Color = xlNone
.Range("L9").Interior.Color = xlNone
.Range("L11").Interior.Color = xlNone
.Range("L13").Interior.Color = xlNone
.Range("L15").Interior.Color = xlNone
.Range("L17").Interior.Color = xlNone
.Range("L19").Interior.Color = xlNone
.Range("L21").Interior.Color = xlNone
.Range("L23").Interior.Color = xlNone
.Range("AO7").Interior.Color = xlNone
.Range("AO9").Interior.Color = xlNone
.Range("AO11").Interior.Color = xlNone
.Range("AO13").Interior.Color = xlNone
.Range("AO15").Interior.Color = xlNone
.Range("AO17").Interior.Color = xlNone
.Range("AO19").Interior.Color = xlNone
.Range("AO21").Interior.Color = xlNone
End With
'Validating area
If Trim(frm.Range("L7").Value) = "" Then
MsgBox "Charternaam is leeg.", vbOKOnly + vbInformation, "Charternaam"
frm.Range("L7").Select
frm.Range("L7").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("L9").Value) = "" Then
MsgBox "Adres is leeg.", vbOKOnly + vbInformation, "Adres"
frm.Range("L9").Select
frm.Range("L9").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("L11").Value) = "" Then
MsgBox "Postcode is leeg.", vbOKOnly + vbInformation, "Postcode"
frm.Range("L11").Select
frm.Range("L11").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("L13").Value) = "" Then
MsgBox "Plaatsnaam is leeg.", vbOKOnly + vbInformation, "Plaatsnaam"
frm.Range("L13").Select
frm.Range("L13").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("L15").Value) = "" Then
MsgBox "Land is leeg.", vbOKOnly + vbInformation, "Land"
frm.Range("L15").Select
frm.Range("L15").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("L21").Value) = "" Then
MsgBox "Bankrekening is leeg.", vbOKOnly + vbInformation, "IBAN Nummer"
frm.Range("L21").Select
frm.Range("L21").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
If Trim(frm.Range("AO11").Value) = "" Then
MsgBox "Voer minstens 1 contactpersoon in.", vbOKOnly + vbInformation, "Contactpersoon"
frm.Range("AO11").Select
frm.Range("AO11").Interior.Color = vbRed
ValCharter = False
Exit Function
End If
End Function
Sub CharterWissen()
With Sheets("CH-Entry")
.Range("L7").Interior.Color = xlNone
.Range("L7").Value = ""
.Range("L9").Interior.Color = xlNone
.Range("L9").Value = ""
.Range("L11").Interior.Color = xlNone
.Range("L11").Value = ""
.Range("L13").Interior.Color = xlNone
.Range("L13").Value = ""
.Range("L15").Interior.Color = xlNone
.Range("L15").Value = ""
.Range("L17").Interior.Color = xlNone
.Range("L17").Value = ""
.Range("L19").Interior.Color = xlNone
.Range("L19").Value = ""
.Range("L21").Interior.Color = xlNone
.Range("L21").Value = ""
.Range("L23").Interior.Color = xlNone
.Range("L23").Value = ""
.Range("AO7").Interior.Color = xlNone
.Range("AO7").Value = ""
.Range("AO9").Interior.Color = xlNone
.Range("AO9").Value = ""
.Range("AO11").Interior.Color = xlNone
.Range("AO11").Value = ""
.Range("AO13").Interior.Color = xlNone
.Range("AO13").Value = ""
.Range("AO15").Interior.Color = xlNone
.Range("AO15").Value = ""
.Range("AO17").Interior.Color = xlNone
.Range("AO17").Value = ""
.Range("AO19").Interior.Color = xlNone
.Range("AO19").Value = ""
.Range("AO21").Interior.Color = xlNone
.Range("AO21").Value = ""
End With
End Sub
Sub CharterOpslaan()
Dim frm As Worksheet
Dim database As Worksheet
Dim iRow As Long
Dim iSerial As Long
Set frm = ThisWorkbook.Sheets("CH-Entry")
Set database = ThisWorkbook.Sheets("CH-Data")
If Trim(frm.Range("M1").Value) = "" Then
iRow = database.Range("A" & Application.Rows.Count).End(xlUp).Row + 1
If iRow = 2 Then
iSerial = 100001
Else
iSerial = database.Cells(iRow - 1, 1).Value + 1
End If
Else
iRow = frm.Range("L1").Value
iSerial = frm.Range("M1").Value
End If
With database
.Cells(iRow, 1).Value = iSerial
.Cells(iRow, 2).Value = frm.Range("L7").Value
.Cells(iRow, 3).Value = frm.Range("L9").Value
.Cells(iRow, 4).Value = frm.Range("L11").Value
.Cells(iRow, 5).Value = frm.Range("L13").Value
.Cells(iRow, 6).Value = frm.Range("L15").Value
.Cells(iRow, 7).Value = frm.Range("L17").Value
.Cells(iRow, 8).Value = frm.Range("L19").Value
.Cells(iRow, 9).Value = frm.Range("AO7").Value
.Cells(iRow, 10).Value = frm.Range("AO9").Value
.Cells(iRow, 11).Value = frm.Range("L21").Value
.Cells(iRow, 12).Value = frm.Range("AO11").Value
.Cells(iRow, 13).Value = frm.Range("AO13").Value
.Cells(iRow, 14).Value = frm.Range("AO15").Value
.Cells(iRow, 15).Value = frm.Range("AO17").Value
.Cells(iRow, 16).Value = frm.Range("AO19").Value
.Cells(iRow, 17).Value = frm.Range("AO21").Value
.Cells(iRow, 18).Value = frm.Range("L23").Value
.Cells(iRow, 19).Value = frm.Range("L30").Value
.Cells(iRow, 20).Value = Application.UserName
End With
' frm.Range("L1").Value = ""
' frm.Range("M1").Value = ""
End Sub
Hier is de regel .Range("L7").Interior.Color = xlNone geel gearceerd.
Het verwijderen van de With frm werkt ook niet.
Dan geeft hij dezelfde fout in de sub charterwissen aan op dezelfde regel als in validate.
Deze fout komt ook bij de overige 2 bestanden.
Wat doe ik fout???