Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Übertragunsfehler von Eingabefenster in Tabelle

Übertragunsfehler von Eingabefenster in Tabelle
19.10.2016 17:02:35
Eingabefenster
Übertragunsfehler von Eingabefenster in Tabelle
Guten Tag
Ich habe in einem Excelfile mit Makros ein Eingabefenster (userform) eingerichtet, in dem mehrere Anwender ihre Daten eintragen. Das Dokument ist schreibgeschützt, lässt sich also nicht bearbeiten, wenn bereits ein Anwender das Dokument geöffnet hat.
Wenn der Anwender seine Daten eingetragen hat und "Daten laden" anwählt, werden die Infos in eine Tabelle übertragen. Diese Tabelle wird ausgewertet - z.B. Anzahl Einträge pro Anwender. Nun ist es schon mehrmals vorgekommen, dass ein Eintrag gemacht wurde. Beim Speichern war in der Auswertung z.B. 6 Einträge zu finden. Zwei Tage später sind in der Auswertung nur noch 4 Einträge zu finden. In der Tabelle wurden Einträge überschrieben (ich nehme an automatisch).
Was läuft hier schief? Kann mir jemand erklären, woher der Fehler kommt?
Folgenden Code für die Übertragung in die Tabelle habe ich benutzt:
Dim IZ As Long
Dim shmain As Worksheet
Set shmain = ThisWorkbook.Sheets("STOP und NearMiss Meldungen")
With shmain
lz = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(lz, 2) = "NearMiss"
.Cells(lz, 3) = Me.TextBox4
.Cells(lz, 4) = "2016"
.Cells(lz, 5) = Me.ComboBox5
.Cells(lz, 6) = Me.TextBox6
Der Fehler ist auch nicht reproduzierbar. Ab und zu tritt die Datenüberschreibung auf, ab und zu nicht.
Ich wäre sehr froh um eure Unterstützung. Leider weiss ich wirklich nicht, wo ich suchen soll.
Besten Dank!
M

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übertragunsfehler von Eingabefenster in Tabelle
19.10.2016 17:26:45
Eingabefenster
Hallo Marianne,
vielleicht wird beim Schließen der Arbeitsmappe nicht gespeichert, denn dann nützen die zuvorgemachten Änderungen garnichts.
Der Vba-Code sieht vernünftig aus.
Gruß von Luschi
aus klein-Paris
AW: Übertragunsfehler von Eingabefenster in Tab
19.10.2016 17:36:14
Eingabefenster
Besten Dank für die Antwort.
Beim Schliessen der Arbeitsmappe wird gespeichert. Dies sehe ich, wenn ich die älteren Versionen des Files wieder aufrufe. Der Fehler muss sonst irgendwo verborgen sein.
Gruss, M
AW: Übertragunsfehler von Eingabefenster in Tab
19.10.2016 18:06:09
Eingabefenster
Hallo Marianne,
ich würde das mit folgendem Code überprüfen:

Sub Speicherdatum()
MsgBox Format(FileDateTime(ThisWorkbook.FullName), "dd.mm.yyyy hh:MM:ss")
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Übertragunsfehler von Eingabefenster in Tabelle
19.10.2016 18:34:54
Eingabefenster
Hi Marianne
Habe ich richtig verstanden, die Datei ist nicht freigegeben?
Du schreibst "schreibgeschützt", dann könnte niemand die Datei bearbeiten, insofern bin ich etwas irritiert, vermute aber du hast die Datei stinknormal gespeichert (nix freigegeben, nix schreibschutz) und somit kann der zweite User die Datei zwangsweise nur schreibgeschützt öffnen.
Poste mal sämtlichen Code und lade eine Beispieldatei ins Forum. Code-Haufen sind zwar mühsam zum Analysieren, aber vielleicht erkennt man etwas.
Wenn es nicht am Code liegt, könnte ich mir höchstens noch ein undefiniertes Netzwerk/Synchronisations-Problem vorstellen, aber das scheint mir doch eher unwahrscheinlich.
cu
Chris
Anzeige
AW: Übertragunsfehler von Eingabefenster in Tab
20.10.2016 11:13:52
Eingabefenster
Hi Marianne
Das ZIP-File kann ich leider nicht öffnen (Firewall), aber ich habe mir das DOC-File angeschaut.
Abgesehen davon, dass man den Code noch optimieren könnte (die vielen If-Then-Else machen es ziemlich unübersichtlich), habe ich keine konkrete Ursache für dein Problem entdeckt. Trotzdem sind mir zwei Punkte aufgefallen.
1.
Dein Code im Forum enthält:
.Cells(lz, 2) = "NearMiss"
Im Word ist dann aber
.Cells(lz, 2) = "STOP"
Ist zwar ein Detail, aber ich frage mich nun woher die Änderung kommt. Da die letzte Zeile anhand von Spalte B ermittelt wird ist es wichtig, dass ein Eintrag in B erzwungen wird.
2.
'überprüfen ob ein OptionButton ausgewählt wurde
Die Plausibilisierung gibt zwar eine Fehlermeldung aus, steht aber ganz am Schluss vom Code. Somit wäre zu dem Zeitpunkt der Datenübertrag bereits erfolgt. Ich denke der Teil müsste ziemlich am Anfang vom Code stehen und mit Exit Sub abgebrochen werden. Der Code könnte wie folgt aussehen:

Dim i As Byte, b As Boolean
For i = 1 To 39
If Controls("OptionButton" & i) Then
b = True
Exit For
End If
Next i
If Not b Then
MsgBox "Es fehlt eine Eingabe auf Seite 1. Bitte wählen sie eine Option aus."
Exit Sub
End If
cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige