HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA gut
Onur
25.04.2026 04:36:40
AW: Fehlersuche Datenverlust
Schwer, ohne die Datei....
Als Antwort auf diesen Beitrag
emkaes
25.04.2026 00:44:29
Fehlersuche Datenverlust
Hallo Profis,

seit Dezember 2025 läuft ein Microsoft Surface im Dauerbetrieb in einem Vereinsheim. Eintragungen sind nur über Steuerelemente (ActiveX) möglich, da eine Tastatur nicht gewollt ist.
Das funzt soweit fast einwandfrei. Ab und wann werden bei Tabellenwechsel die Steuerelemente nicht gezeichnet, auch Workarounds zum Neuaufbau der Tabelle wie zoomen beim Sheet_Change_event etc verhindern das nicht zuverlässig, das ist aber nicht das Problem.

Die Eintragungen werden sowohl in der Exceldatei in einer intelligenten Tabelle als auch ( zur Sicherheit ) in einer LogDatei als csv abgelegt.

das soll über nachfolgenden Code erfolgen


Sub buchungen(strA As String, strB As String, strC As String, intNum As Integer)

Dim tbl As ListObject
Dim Spalte As Long, dblP As Double

Spalte = 1
Dim zeile As Long
Dim rng As Range
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)

'Zeile hinzufügen
tbl.ListRows.Add

'Zeile definieren
zeile = tbl.DataBodyRange.Rows.Count

With tbl.DataBodyRange
.Cells(zeile, 1).Value = zeile
.Cells(zeile, 2).Value = Date
.Cells(zeile, 3).Value = strA
.Cells(zeile, 4).Value = strB
.Cells(zeile, 5).Value = strC
.Cells(zeile, 6).Value = intNum
.Cells(zeile, 7).Value = dblP
.Cells(zeile, 8).Value = intNum * dblP
End With
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


Jetzt musste ich leider feststellen, dass mir im Listobject der Tabelle3 ca 500 Datensätze fehlen. Insgesamt sind in der csv-Datei 1217 Einträge, das Listobject hat lediglich 729 Einträge.

Eine mögliche Ursache kann natürlich sein, dass das logFile für jeden Eintrag geöffnet und geschlossen wird, während die ExcelDatei geöffnet bleibt. Hier auch nach jedem Eintrag zu speichern ließe sich ja relativ einfach bewerkstelligen.

Habt ihr für den geschilderten Datenverlust hinsichtlich ListObject oder Microsoft Surface ggfs. irgendwelche Erkenntnisse?

Vielen Dank für eure Bemühungen

emkaes


Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.