Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

letzte Zeile und falsche Leerzellen

letzte Zeile und falsche Leerzellen
Werner
Hallo,
gestern hatte ich mit euch eine Frage über Leerzellen diskutiert.
Dieses Problem taucht auch in einem speziellen Zusammenhang auf:
Wenn man, z.B. mit einer Subroutine oder Funktion, die letzte belegte Zeile oder die erste freie Zeile einer Spalte ermitteln will, etwa so:

Sub Ermitteln()
Cells(Rows.Count, 1).End(xlUp).Select
End Sub


...dann stören unechte Leerzellen das Programm natürlich erheblich. Das kann man leicht ausprobieren, indem man z.B. eine Zelle unterhalb der letzten "wirklichen", d.h. beabsichtigten, Zeile einer Spalte mit Daten be-
füllt, z.B. zwei und drei zusätzliche Zeilen, und diese dann anschließend wieder löscht. Die zwei oder drei zusätzlichen Zeilen dieser Spalte gelten dann, auch wenn sie z.B. mit der Leertaste geleert worden sind,
für das Problem durchaus nicht als leer, und wenn ich dann mit einer Userform einen neuen Datensatz hinter den letzten schreiben will, kann es vorkommen, dass der neue Datensatz in drei, vier Zeilen Abstand zum letzten Datensatz erscheint. Dazwischen ist eben unsichtbarer Datenmüll.
Manuell kann man dieses Problem dadurch lösen, dass man ein paar Zeilen hinter der letzten echten Zeile
einfach löscht, aber es bleibt immer Unsicherheit, ob einem nicht doch ein paar "Unechte" entgangen sind.
Vielleicht kennt einer von euch eine Funktion, die alles automatisch macht und einem den Kummer mit
den "Unechten" erspart. Eine Funktion, die vor Ermittlung der letzten Zelle zuerst einmal zehn verdächtige
"Falschleere" weghaut, zu schreiben, ist natürlich keine Kunst, aber das ist wohl eher die Holzhammermethode.
Bin mal wieder auf eure Antworten gespannt. Man erfährt so häufig Lösungsansätze, auf die man selbst
gar nicht so ohne weiteres kommt.
Grüße Werner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: letzte Zeile und falsche Leerzellen
21.04.2008 13:13:45
Beverly
Hi Werner,
versuche es mal mit diesem Code für die letzte belegte Zelle

Dim loLetzte As Long
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)




AW: letzte Zeile und falsche Leerzellen
21.04.2008 13:29:00
UweD
Hallo
versuch mal die Datei vor der Ermittlung der letzten Zeile zu speichern (per Makro)
Danach werden die ursprünglich belegten Zellen ignoriert.
Gruß UD

AW: letzte Zeile und falsche Leerzellen
Werner
Hi Beverly und UweD,
schreibe mir alles auf, probiere es später noch aus (meine Datei ist auf einem anderen Computer).
Habe auch festgestellt, dass man in diesem Forum noch besser lernt, wenn man z.B. in einem weiteren
Tab des Browsers die Wikipedia und deren Erklärungen zuschaltet. So z.B. habe ich gerade erst den
"IIf"-Befehl mit Wikipedia (en.wikipedia.org/wiki/Iif) ermittelt (Iif ist eigentlich eine Ja-Falsch-Abfrage, die in meinem Excel-Lehrbuch aber nicht erklärt war.
Besten Dank! Werner

Anzeige
AW: letzte Zeile und falsche Leerzellen
22.04.2008 00:04:03
Daniel
Hi
nur mal so als Frage, was sind für dich unechte Leerzellen?
Excel hat das Problem, daß es beim Löschen und Einfügen nicht immer aufpasst und deswegen der angeblich benutzte Zellebereich (der mit UsedRange abgefragt werden kann) grösser sein kann, als der tatschächlich genutzte.
aber die Funktion Cells(Rows.Count, 1).End(xlUp).Select ist davon nicht betroffen und springt zuverlässig zur letzen gefüllten Zelle (sofern die Tabelle nicht bis zur letzten Zeile mit Daten gefüllt ist, aber wenn das vorkommen kann, hast du ganz andere Probleme)
Problematisch ist es nur, wenn die Zellen nicht leer sind, sondern nur mit nicht sichtbaren Zeichen gefüllt sind, z.B. dem Leerzeichen (zeichencode 32), oder andern Steuerzeichen.
da hilft dann nur, diese Zeichen z.b. mit dem Replache-Befehl zu entfernen:

Cells.Replace What:=" ", Replacement:="", LookAt:=xlWhole


Gruß, Daniel

Anzeige
OK
Werner
Hi Daniel,
Dank für den Hinweis. Stimme dir zu. Das Problem mit dem UsedRange ist ja in einem anderen Thread in diesem Forum kürzlich auch diskutiert worden (unter "UsedRange trimmen"), somit ist die Frage nun hinreichend geklärt. Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige