Hallo allemaal, ik heb een probleem met opslaan van gegevens nadat ik een code heb ingevoegd in een VBAmodule, die controleert op dubbele factuurnummers.
Als ik deze code activeer en hij vindt een dubbel nummer, dan geeft hij dat aan en vraagt of ik door wil gaan, bij nee gebeurd er niets en krijg je de melding "Niets opgeslagen"
Tot zover goed, maar als ik gegevens wel wil opslaan, zowel direct(bij geen dubbel nummer) of met de beantwoording van de vraag met ja knalt excel er uit!
Wat heb ik fout gedaan(daarvoor werkte alles prima)
Dit is de code:
Ik heb er ook een testbestand bijgedaan, de testmodule die ik hiervoor het testen gebruik is "Test_diversen/ Tst_Store_Data1"
De werkende module is "OpslaanUitgaven"
Ik hoop dat iemand mij kan helpen
groet
Rene
Als ik deze code activeer en hij vindt een dubbel nummer, dan geeft hij dat aan en vraagt of ik door wil gaan, bij nee gebeurd er niets en krijg je de melding "Niets opgeslagen"
Tot zover goed, maar als ik gegevens wel wil opslaan, zowel direct(bij geen dubbel nummer) of met de beantwoording van de vraag met ja knalt excel er uit!
Wat heb ik fout gedaan(daarvoor werkte alles prima)
Dit is de code:
Code:
Sub Tst_Store_Data1()
' Takes data from worksheet Gegevens (Uitgavenformulier) and stores in in the next empty row on Uitgaven worksheet.
Dim sourceSheet As Worksheet
Dim dataSheet As Worksheet
Dim nextRow As Integer
Dim Mndm, MnDnr, YrNr
Dim FoundCell As Range
Dim Search As String
Dim eRow As Long
' Make some sheet variables .
Set sourceSheet = Worksheets("Gegevens")
Set dataSheet = Worksheets("Uitgaven")
' Get the next empty row from the Data sheet.
nextRow = dataSheet.Range("B" & dataSheet.Rows.Count).End(xlUp).Offset(1).Row
'Capitalize first letter
sourceSheet.Range("I11,I13,I27").Select
Dim Cel As Range
For Each Cel In Selection
Cel.Value = UCase(Left(Cel.Value, 1)) & Mid(Cel.Value, 2)
Next
Mndm = sourceSheet.Range("I5")
MnDnr = Month(Mndm)
YrNr = Year(Mndm)
'Search for duplicate factuurnummers in Sheet "uitgaven"
eRow = Worksheets("Uitgaven").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Search = sourceSheet.Range("I9").Value
Set FoundCell = Worksheets("Uitgaven").Columns(4).Find(Search, LookIn:=xlValues, Lookat:=xlWhole)
If FoundCell Is Nothing Then
' No duplicate numbers, Input the form values into the Data sheet.
dataSheet.Cells(nextRow, 2).Value = sourceSheet.Range("I5").Value
dataSheet.Cells(nextRow, 3).Value = sourceSheet.Range("I7").Value
dataSheet.Cells(nextRow, 4).Value = sourceSheet.Range("I9").Value
dataSheet.Cells(nextRow, 5).Value = sourceSheet.Range("I11").Value
dataSheet.Cells(nextRow, 6).Value = sourceSheet.Range("I13").Value
dataSheet.Cells(nextRow, 7).Value = sourceSheet.Range("I15").Value
dataSheet.Cells(nextRow, 8).Value = sourceSheet.Range("I17").Value
dataSheet.Cells(nextRow, 9).Value = sourceSheet.Range("I19").Value
dataSheet.Cells(nextRow, 10).Value = sourceSheet.Range("I21").Value
dataSheet.Cells(nextRow, 11).Value = sourceSheet.Range("I23").Value
dataSheet.Cells(nextRow, 12).Value = sourceSheet.Range("I25").Value
dataSheet.Cells(nextRow, 13).Value = sourceSheet.Range("I27").Value
dataSheet.Cells(nextRow, 15).Value = MnDnr
dataSheet.Cells(nextRow, 16).Value = YrNr
'Clear Data
sourceSheet.Range("I5,I7,I9,I11,I13,I15,I17,I23,I25,I27").Select
Selection.ClearContents
Range("I5").Select
Else
'find duplicate numbers
Dim Answer As VbMsgBoxResult
Answer = MsgBox(" factuurnummer bestaat al" & " " & "Wilt u doorgaan?.", vbYesNo + vbQuestion + vbDefaultButton2, " ")
If Answer = vbYes Then
' Input the form values into the Data sheet.
dataSheet.Cells(nextRow, 2).Value = sourceSheet.Range("I5").Value
dataSheet.Cells(nextRow, 3).Value = sourceSheet.Range("I7").Value
dataSheet.Cells(nextRow, 4).Value = sourceSheet.Range("I9").Value
dataSheet.Cells(nextRow, 5).Value = sourceSheet.Range("I11").Value
dataSheet.Cells(nextRow, 6).Value = sourceSheet.Range("I13").Value
dataSheet.Cells(nextRow, 7).Value = sourceSheet.Range("I15").Value
dataSheet.Cells(nextRow, 8).Value = sourceSheet.Range("I17").Value
dataSheet.Cells(nextRow, 9).Value = sourceSheet.Range("I19").Value
dataSheet.Cells(nextRow, 10).Value = sourceSheet.Range("I21").Value
dataSheet.Cells(nextRow, 11).Value = sourceSheet.Range("I23").Value
dataSheet.Cells(nextRow, 12).Value = sourceSheet.Range("I25").Value
dataSheet.Cells(nextRow, 13).Value = sourceSheet.Range("I27").Value
dataSheet.Cells(nextRow, 15).Value = MnDnr
dataSheet.Cells(nextRow, 16).Value = YrNr
'Clear Data
sourceSheet.Range("I5,I7,I9,I11,I13,I15,I17,I23,I25,I27").Select
Selection.ClearContents
Range("I5").Select
UserForm2.Show
Else
' do not input the data
MsgBox ("Niets opgeslagen")
Exit Sub
End If
End If
End Sub
Ik heb er ook een testbestand bijgedaan, de testmodule die ik hiervoor het testen gebruik is "Test_diversen/ Tst_Store_Data1"
De werkende module is "OpslaanUitgaven"
Ik hoop dat iemand mij kan helpen
groet
Rene