Als Antwort auf diesen Beitrag
Hallo emkaes,
da ist am Code erst mal nichts was so ein Problem verusachen könnte.
Aber aus der Ferne 2 Gedanken.
1. Gedanke: es wurde in Tabelle 3 nachträglich händisch gelöscht.
2. Gedanke: Es enstehen aus einer anderen Ecke deines Projektes doppelte Aufrufe dieser Prozedur.
Der 2. Gedanke hätte aber auch zur Folge, dass dann händisch aus der Tabelle3 der jeweilige doppelte Eintrag entfernt wurde.
Anbei mal noch ein Gedanke/Änderung zum Schreiben in eine neue Zeile via Array in einen Rutsch.
Sub buchungen(strA As String, strB As String, strC As String, intNum As Integer)
Dim tbl As ListObject
Dim dblP As Double, arr()
Dim filepath As String, csvLine As String, logFile As Integer
If InStr(1, strC, "0,33") > 0 Then
dblP = 1
ElseIf InStr(1, strC, "0,5") > 0 Then
dblP = 1.25
Else
dblP = 0.75
End If
'Tabelle einlesen
With Tabelle3
Set tbl = .ListObjects(1)
arr = Array(tbl.DataBodyRange.Rows.Count, Date, strA, strB, strC, intNum, dblP, intNum * dblP)
tbl.ListRows.Add.Range.Resize(1, 8) = arr
End With
' Logfile (CSV-Datei) als Backup ergänzen
filepath = "C:\Users\Logfile.csv"
' CSV-Zeile vorbereiten
csvLine = Date & ";" & strA & ";" & strB & ";" & strC & ";" & intNum * dblP
' CSV-Datei öffnen und neue Zeile anfügen
logFile = FreeFile
Open filepath For Append As logFile
Print #logFile, csvLine
Close logFile
End Sub
Gruß Uwe