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

Fehler beim Auslesen der letzten Zelle

Fehler beim Auslesen der letzten Zelle
12.01.2021 11:44:35
Jan
Hallo,
ich habe auf der Arbeit eine Datei überarbeitet, um mir und den Kollegen das Leben etwas leichter zu machen, beispielsweise eine Suchfunktion mittels Array und weitere Spielereien.
Da ich gerne nichts ausdrucke, was sowieso keinen Inhalt hat, wollte ich mit die letzte beschriebene Zelle in Spalte B und Spalte E ermitteln, damit nur bis dahin gedruckt wird. Der Vergleich und die Suche nach fehlenden Zellen hat erstmal nichts damit zu tun, sondern soll lediglich mir helfen, die Rückfrage für die eigentlichen Pflichtfelder zu vermeiden.
Bis vor kurzem hat es auch noch funktioniert, jetzt gibt er jedoch immer die letzte Zeile an, welche bei A bis F immer die 87 ist, egal ob beschrieben oder nicht. Lese ich dagegen Zeile G aus (leer), bekomme ich die 1 zurück.
Ich hatte auch schon .Cells(Rows.Count, 2).End(xlUp).Row statt dem Befehl mit .Range
Die Felder sind grau und die Füllung wird mittels Regel wieder entfernt. Aufgrund der Regel ist die Formatierung Text. Spalte B und C enthalten Formeln, sind jedoch nicht in der Suche nach der untersten beschriebenen Zelle enthalten. Auch nach entfernen sämtlicher Formatierungen bekomme ich noch die 87 zurück. Auf dem anderen Blatt ist der exakt gleiche Code (bis auf geänderter Blattname), dort funktioniert es einwandfrei. Dort habe ich auch zum Testen schonmal weiter unten Zellen formatiert, gelb gefärbt, etc.; die Suche nach der untersten Zelle funktioniert.
Eventuell fällt hier noch jemandem etwas ein, was ich übersehen haben könnte. Ich habe den Dateiupload vermieden, da ich sonst zu viele Daten löschen müsste.
Vielen Dank schonmal im Voraus; sollte etwas fehlen bitte bescheid geben!
Userbild
Userbild

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 11:49:59
Jan
Edit:
Lese ich dagegen SpalteG aus (leer), bekomme ich die 1 zurück.
Ergänzung:
Das Problem bleibt übrigens auch, wenn Spalte A, C oder D leer sind.
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:07:58
ralf_b
Hallo,
Mag sein das da ein Leerzeichen oder eine ausgeblendete 0, oder sowas drin steht. Wie ist denn die Länge des Zellinhaltes?
Warum kümmert es dich was in dieser Spalte steht? So wie es sich mir darstellt benötigst du nur die max Zeilennummer der Tabelle. und die würde ich aus der Numerierungsspalte nehmen oder über usedrange oder currentregion. Du selbst nutzt im Zweifelsfall eh die Zahl von Spalte E.
Die einzelnen Zellen prüfst du eh in der For-Schleife. Wobei dies auch eine worksheetfunction.countblank erledigen könnte. Reicht dir für die Messagebox die ranZelle.row? Wäre da nicht die Datensatznr. (Wert aus Spalte A) besser.
gruß
rb
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:13:37
Jan
Hallo Ralf,
ich benötige die Informationen aus Spalte B und E, um dann weiter arbeiten zu können, daher schau ich, ob erstens beide Spalten gleich weit nach unten befüllt sind und dann auch noch, ob in einer der beiden Spalten etwas fehlt.
Wie kann ich denn herausfinden und vor allem auch verhindern, dass etwas ausgeblendetes darin steht? Ich habe auf jeden Fall auch beim Testen mit Entf den vermeitlichen Zellinhalt gelöscht.
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:18:07
ralf_b
kannst du das Arbeitsblatt in eine neue Datei kopieren und den Fehler dort reproduzieren? Falls ja, dann lade diese hoch.
zitat: ich benötige die Informationen aus Spalte B und E, um dann weiter arbeiten zu können,
Wozu denn genau?
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:30:53
Jan
Hallo Ralf,
Datei ist hoch geladen, der Fehler ist auch in der anderen Datei.
Spalte B ist die Hauptbuchnummer und Spalte E die Kategorisierung, beide Informationen müssen dann mit dem Ergebnis zwingend angegeben werden, daher hab ich sie auch als Pflichtfeld.
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:37:51
ralf_b
ich schreib mal hier weiter.
Werner hat's dir ja schon geschrieben.
Wenn du schon intelligente Tabelle nutzt dann versuch es auch in vba zu verwenden.
Hier mal ein Link https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables#lookup
Der Zugriff auf die Elemente ist vielleicht etwas umständlicher aber ich finde auch sauberer.
nur mal so als Idee:
Private Sub Check()
'Überprüfung auf Vollständigkeit und Anpassen des Druckbereichs
Dim lngLetzteB As Long, lngLetzteE As Long
With Pendelbrief.ListObjects("Tabelle2")
'soll die leeren Zellen zählen und mit der gesamtzahl vergleichen
If WorksheetFunction.CountBlank(.DataBodyRange) = .DataBodyRange.Cells.Count Then
MsgBox "Proben eintragen!", vbInformation
Exit Sub
End If
lngLetzteB = .ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeBlanks).Row
lngLetzteE = .ListColumns(4).DataBodyRange.SpecialCells(xlCellTypeBlanks).Row
If lngLetzteB + lngLetzteE > 0 Then
'wenn mehr als einer fehlt dann ist die Zeile des ersten Leeren auch egal ,oder?
'ich würde die leeren Pflichtzellen vielleicht mit ner bedingten Formatierung markieren. _
MsgBox "Es fehlen noch Einträge", vbInformation
Exit Sub
Else
'        Parent.Unprotect Password:="zensiert"
Parent.PageSetup.PrintArea = "$A$1:$F$" &  _
.DataBodyRange.SpecialCells(xlCellTypeLastCell). _
Row
'        parent.Protect Password:="zensiert"
End If
End With
End Sub

Anzeige
update
12.01.2021 13:41:38
ralf_b
da war er wieder, der Fehlerteufel

lngLetzteB = .ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeBlanks).Count
lngLetzteE = .ListColumns(4).DataBodyRange.SpecialCells(xlCellTypeBlanks).Count

AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:43:08
Jan
Hallo Ralf,
ich werde es mir auf jeden Fall gleich mal anschauen, vielen Dank schonmal für die Erweiterung/Verbesserung!
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:17:18
Werner
Hallo,
toll, du erwartest eine Problemlösung anhand von irgenwelchen Bildchen?
Kein Mensch weiß, was du in Spalte A für Daten drin hast. Formeln, die ggf. leer ausgeben?
Sub Schaltfläche1_Klicken()
Dim lngLetzteB As Long
With Pendelbrief
lngLetzteB = .Columns("A").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
searchdirection:=xlPrevious).Row
MsgBox lngLetzteB
End With
End Sub
Gruß Werner
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 12:28:27
Jan
Hallo Werner,
tut mir leid, dass die Bilder nicht ausreichend sind.
Ich habe jedoch keine Formel in Spalte A hinterlegt, das sind lediglich Zahlen eingetippt; Spalte B ist ohne jegliche Formeln.
Hier ist die Datei
https://www.herber.de/bbs/user/142950.xlsm
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:26:11
Werner
Hallo,
na ja, ich will dir ja nicht zu Nahe treten, aber Excel gut, VBA gut?
Du hast deinen Datenbereich als intelligente Tabelle formatiert und deren Datenbereich geht nun mal bis zur Zeile 87.
Die Lösung habe ich dir schon gepostet. Wobei ich da versehentlich .Colmuns("A") drin habe, müsste natürlich .Columns("B") sein.
Gruß Werner
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:41:02
Jan
Hallo Werner,
bis jetzt bin ich immer zurecht gekommen und habe meiner Fehler auch selbst gefunden. Man lernt halt nie aus und irgendwann steht man doch immer Mal vor etwas, was bis dato noch nicht vorgekommen ist oder man kommt nicht auf anhieb drauf, aber gut...
Dennoch vielen Dank für die Lösung bzw. auch die Erklärung.
Gerne u. Danke für die Rückmeldung. o.w.T.
12.01.2021 13:46:05
Werner
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:34:36
Rudi
Hallo,
die letzte Zeile bekommst du nach diesem Schema:
Sub aaa()
Dim r As Range
Set r = Columns(2).Find(what:="*", lookat:=xlPart, LookIn:=xlValues, searchdirection:= _
xlPrevious)
If Not r Is Nothing Then MsgBox r.Row
End Sub

Gruß
Rudi
Anzeige
AW: Fehler beim Auslesen der letzten Zelle
12.01.2021 13:46:15
Jan
Hallo Rudi,
danke für die Hilfe, der Fehler war die intelligente Tabelle in dem Bereich.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige