Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

Unerwartete Leerzeilen nach Speichern

Unerwartete Leerzeilen nach Speichern
06.02.2023 13:45:35
Peter
Hallo liebe Forums-Teilnehmer,
leider hat meine bisherige Suche nach einer Lösung noch zu keinem Erfolg geführt, daher bitte ich hier um Hilfe.
Ich habe für Kollegen eine kleine Excel/VBA-Anwendung gebastelt, die im wesentlichen Daten, die in eine Userform eingegeben werden, nach Klick auf einen Button in eine Tabelle speichert. Die Userform liegt in einer eigenen Tabelle (für jeden Anwender, eine Art Frontend), die Datentabelle wird nur zum Speichern geöffnet und wieder geschlossen.
Folgendes Phänomen tritt dabei hin und wieder auf: Nach dem Speichern liegen zwischen dem letzten Datensatz und dem eben gespeicherten Satz plötzlich ca. 1500 leere Zeilen! Die nächsten Datensätze werden dann natürlich ans Ende angehängt, aber auch dort bleiben plötzlich wieder hunderte Zeilen leer. Die Sub fürs Speichern bedient sich altbewährten Codes:
strLast = RegiWS.Cells(Rows.Count, 1).End(xlUp).Row + 1, um die erste freie Zeile zu ermitteln (strLast = string) und
.Cells(strLast, 3).Value = UFMaster.TB_Kennzeichen.Value, um die Daten aus der Userform in die Tabelle zu schreiben.
Wir sind echt am verzweifeln, weil auch nach Bereinigung der Datentabelle der Fehler sporadisch immer wieder auftritt. Hat jemand eine Idee, woher die Leerzeilen kommen könnten? Ein Bedienfehler ist eigentlich nicht denkbar, dafür ist die Anwendung zu simpel (und niemand würde 1000 leere Datensätze speichern).
Vielen Dank im Voraus für jede Hilfe!!
Peter

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 13:57:50
Rudi
Hallo,
wie soll man das ohne die Mappe herausfinden?
Anscheinend wird ein Leerzeichen? in deine Datentabelle geschrieben. Teste das doch nach dem nächsten "Vorfall" z.B. mit =Länge(Bezug); =Code(Bezug)
Gruß
Rudi
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 14:03:28
onur
strLast = string ?
strLast soll doch die ZeilenNUMMER sein - oder?
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 14:09:26
Peter
Hallo onur,
ja, die habe ich als String definiert, das hat bisher in anderen Anwendungen auch nie zu einem Problem geführt.
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 14:33:19
onur
Und was ist DAS? Kein Problem ? "das hat bisher in anderen Anwendungen auch nie zu einem Problem geführt" - du meinst, zu einem, den du bemerkt hast. Wenn es zufälligerweise mal läuft, heisst das nicht, dass es richtig ist.
Ausserdem -
.Cells(Rows.Count, 1).End(xlUp).Row + 1
Sucht nach der ersten freien Zelle in Spalte A, aber ".Cells(strLast, 3).Value = " schreibt in Spalte C. Solange in A nix geschrieben wird, wird die letzte Änderung jedes mal überschrieben.
Keine Ahnung, was noch alles falsch ist, aber wenn man in 2 Codezeilen schon 2 Fehler findet, kann ich mir vorstellen, wie der restliche Code aussieht.
Anzeige
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 14:22:52
JoWE
Hallo,
möglicherweise liegt die Ursache hier:
"...nach Klick auf einen Button in eine Tabelle speichert..."
Wir kennen den Code hinter dem Button nicht. Was soll man da raten?!
Gruß
Jochen
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 14:50:09
Peter
Hallo,
ich habe mal das Frontend hochgeladen: https://www.herber.de/bbs/user/157664.xlsm
Dass mein Code nicht der eleganteste ist und manche Sachen viel besser gemacht werden könnten, ist mir klar. Ich mache das neben meiner normalen Arbeit, so gut es geht, und habe auch nie behauptet, ein Experte zu sein.
Vielleicht führt ein Blick in den Code des Fontends ja auf die Spur des Fehlers. Die Datentabelle mit anonymisierten "Spieldaten" könnte ich auch noch zur Verfügung stellen.
Anzeige
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 16:57:58
JoWE
Hallo Peter,
auf Anhieb kann ich keinen Fehler sehen.
Also lade die Datentabelle "Spieldaten" mal hoch.
Prüfe aber auch, ob die "Original-Regi" nicht doch noch irgendwo Zellformatierungen außerhalb des relevanten Datenbereiches hat.
Gruß
Jochen
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 17:00:19
onur
Vor allem in Spalte A der letzten "eingefügten" Leerzeile.
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 17:42:02
Peter
Ja, es gibt Formatierungen… 3 Spalten der Tabelle sind über Zellformat als Datum formatiert.
AW: Unerwartete Leerzeilen nach Speichern
06.02.2023 17:56:08
JoWE
Das wäre jedoch ok und ist sicher nicht fehlerursächlich.
Ich hatte eher so etwas wie Rahmenlinien oder Hintergrundfarben gemeint.
AW: Unerwartete Leerzeilen nach Speichern
07.02.2023 08:13:29
Peter
Guten Morgen!
Ich habe jetzt mal die Spieldaten hochgeladen: https://www.herber.de/bbs/user/157682.xlsm
In der Tabelle hatte ich die unerwünschten Leerzeilen jeweils mit dem Befehl "Löschen - Blattzeilen löschen" entfernt, der Befehl "STRG - ENDE" hat dann den Cursor auch immer ganz brav ans Ende des letzten Datensatzes gesetzt.
Anzeige
AW: Unerwartete Leerzeilen nach Speichern
07.02.2023 11:19:16
JoWE
Hallo Peter,
ich kann den beschriebenen Fehler noch immer nicht nachvollziehen.
Daher: Ein WorkAround in der Sub Sub speichern() wäre allenfalls erst einmal dies:
Da in der Spalte A doch eigentlich in jedem Fall ein Eintrag vorhanden sein müsste
und es zwischen den Daten in der Regi niemals Leerzeilen geben dürfte
kann die erste freie Zeile meiner Ansicht nach auch von A1 aus nach unten suchend gefunden werden
strLast = RegiWS.Cells(1, 1).End(xlDown).Row + 1
Es wäre einen Versuch wert, oder?
Gruß
Jochen
AW: Unerwartete Leerzeilen nach Speichern
07.02.2023 11:35:51
Peter
Habe ich jetzt umgesetzt, auch die Variable strLast ist jetzt als lonLast (Long) definiert. Wir testen mal, was passiert ...
Anzeige
AW: Unerwartete Leerzeilen nach Speichern
07.02.2023 12:09:25
JoWE
um ganz sicher zu gehen machst Du es vielleicht doch besser so:
    strLast = 3 'weil die Daten in Zeile 3 beginnen und dort immer (nehme ich an) das erste Zeichen ein "K" ist !!
    Do Until Left(RegiWS.Cells(strLast, 1).Value, 1) > "K"
        strLast = strLast + 1
    Loop
Gruß
Jochen
nebenbei ....
06.02.2023 14:25:49
Rudi
Hallo,
1. solltest du den korrekten Datentypen LONG verwenden.
2. die von dir benutzte Methode liefert einen falschen Wert, wenn die untersten Zeilen per Filter ausgeblendet sind.
Ich bevorzuge
lngLast = RegiWS.Columns(1).Find(what:="", lookat:=xlPart, LookIn:=xlFormulas, searchdirection:=xlPrevious).Row + 1
Gruß
Rudi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige