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

Letzte Zelle mit konstantem Wert in Excel

Letzte Zelle mit konstantem Wert in Excel
04.05.2009 14:37:38
Daniel
Hallo zusammen,
mit welchem VBA-Befehl komme ich an die letzte Zeile mit einem konstantem Wert (KEINE Formel!!) in einem Excel-Blatt? (Mit Cells(Rows.Count,1).End(xlUp).Row bekomme ich ja die letzte Zeile mit einer Formel zurückgeliefert)
Vielen Dank für eine Antwort!

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zelle mit konstantem Wert in Excel
04.05.2009 14:40:34
Tino
Hallo,
z. Bsp. so.

Sub Beispiel()
Dim LRow As Long
LRow = Cells.Find("*", , xlValues, 2, 1, 2, False, False).Row
MsgBox "letzte Zeile mit Werten ist die " & LRow
End Sub


Gruß Tino

AW: Letzte Zelle mit konstantem Wert in Excel
04.05.2009 14:44:54
Daniel
Das ist schon mal Top! Wie kann ich den Befehl noch anpassen, dass er die letzte Zeile zurückgeben werden soll, wo in Spalte A ein Wert steht?
AW: Letzte Zelle mit konstantem Wert in Excel
04.05.2009 14:53:35
Tino
Hallo,
so müsste es gehen.

Sub Beispiel()
Dim LRow As Long
LRow = Range("A:A").Find("*", , xlValues, 2, 1, 2, False, False).Row
MsgBox "letzte Zeile mit Werten ist die " & LRow
End Sub


Gruß Tino

Anzeige
AW: Letzte Zelle mit konstantem Wert in Excel
04.05.2009 14:55:25
Daniel
Perfekt!! Vielen Dank!
Anmerkung...
04.05.2009 15:05:36
Tino
Hallo,
nur noch eins, enthält die Tabelle nur Formeln oder ist die Tabelle leer, kommt es zum Fehler.
In einem solchen Fall müsste man es so machen.

Dim LRow As Long
On Error Resume Next
LRow = Range("A:A").Find("*", , xlValues, 2, 1, 2, False, False).Row
On Error GoTo 0
If LRow = 0 Then
MsgBox "Keine festen Werte gefunden"
Else
MsgBox "letzte Zeile mit Werten ist die " & LRow
End If


Aber in der Regel hat eine Tabelle eine Überschrift die aus festen Werten besteht,
dann braucht es keine Fehlerbehandlung.
Gruß Tino

Anzeige
mal ne Frage …
04.05.2009 16:37:38
Klaus
… von einem VBA-Anfänger:
Was genau bedeuten eigentlich die Parameter
("*", , xlValues, 2, 1, 2, False, False)
Gruß
Klaus
AW: mal ne Frage …
04.05.2009 16:47:32
Heiner
Hi,
das ist die fehleranfällige, weil versionsabhängige Variante, die benannten Argumente einzusparen,
und das auch noch ziemlich inkonsequent. Gewöhn dir das gar nicht erst an, sondern benutze
die Argumente so, wie sie in der Hilfe zu Find stehen.
mfg Heiner
AW: mal ne Frage …
04.05.2009 16:55:25
Tino
Hallo Heiner,
habe noch keine schlechte Erfahrung gemacht damit,
außer mit SearchFormat (hier nicht dabei) dieser ist Versionsabhängig.
Bei mir gehts unter Version XP, xl2000, xl2003 u. xl2007.
Bei welcher Version gehts nicht?
Gruß Tino
Anzeige
AW: mal ne Frage …
04.05.2009 16:51:02
Tino
Hallo,
Syntax
Ausdruck.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Dies sind die Parameter für diese Funktion, schau mal in der Hilfe nach.
Anstelle der Konstanten, verwende ich gern den Wert dieser Konstanten damit der Code nicht so lang ist
Beispiele:
So mache ich es.

LRow = Range("A:A").Find("*", , xlValues, 2, 1, 2, False, False).Row


So geht’s auch


LRow = Range("A:A").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False, False).Row


oder auch noch so


LRow = Range("A:A").Find(What:="*", LookIn:=xlValues, Lookat:=xlPart, Searchorder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False, MatchByte:=False).Row


Gruß Tino

Anzeige
AW: mal ne Frage …
04.05.2009 17:02:05
Heiner
Hi,
konsequent wäre:
LRow = Range("A:A").Find("*", , -4163, 2, 1, 2, 0, 0).Row
und außerdem noch kürzer, aber nicht sicher(Version)!
mfg Heiner
AW: mal ne Frage …
04.05.2009 17:03:31
Tino
Hallo,
ich kann mir aber xlValues u. xlFurmulas besser merken.
Gruß Tino
AW: Bei Anworten im Forum...
04.05.2009 18:23:16
Daniel
... sollte man den Code so verständlich wie möglich gestalten, dh Benannte Parameter und xlVariablen anstelle der Zahlenwerte verwenden.
Schließlich sind die meisten Fragesteller hier keine Profis (es heißt ja auch "Beginners All Purpose Insruction Code")
aber auch für die eigene Arbeit ist das hilfreich, weil schon im Code schneller erkennt, was passiert und man nicht erst langwierig Dokumentationen lesen muss (die sowiso meist nicht vorhanden und wenn veraltent sind).
Außerdem spielt bei der Verwendung von Benannten Parametern die Reihenfolge und Vollständigkeit der Parameter keine Rolle, so daß dadurch eine Quelle für schwer auffindbare Fehler gleich vermieden wird.
Ebenso sind für die meisten Menschen sprechende Texte leichter zu lernen als eine Vielzahl von abstakten, leicht verwechselbaren Zahlenfolgen.
(Ich muss ja mein Gehirn nicht damit belasten, ob jetzt der LookAt-Parameter der 4. oder 5. ist)
Ich denke mal, daß diese Vorteile mehr wiegen als ein bisschen mehr Tipparbeit.
Und wenn die zuviel ist, kann man sich ja mit dem Makrorecorder behelfen und die entspechenden Teile des aufgezeichneten Codes in das eigene Makro kopieren.
Gruß, Daniel
Anzeige
AW: Bei Anworten im Forum...
04.05.2009 18:38:07
Tino
Hallo,
das liegt ja wohl im ermessen des Programmierers, ich habe mir die Parameter beigebracht und kann diese so direkt aus dem Kopf schreiben.
Natürlich kann ich die Parameter auch anders angeben, die werden mir ja direkt vorgeschlagen und ich bräuchte nur auswählen, aber wie gesagt mir es so lieber.
Gruß Tino
AW: Bei Anworten im Forum...
04.05.2009 18:44:33
Daniel
Hi
... schreibst du den Code aber nicht für dich, sondern für den Fragesteller.
Daher gehts nicht darum, was dir lieber, sondern was für den Fragesteller hilfreicher ist.
Ich denke mal nicht, daß dieser die entsprechenden Zahlencodes im Kopf hat.
Sonst würde er wahrscheinlich hier nicht fragen, sondern antworten.
Gruß, Daniel
Anzeige
kann man drüber streiten...
04.05.2009 18:58:59
Tino
Hallo,
was man wie zu tun und zu lassen hat.
Wenn es unklar ist, kommt die Rückfrage schon von alleine und der Fragende hat zudem auch noch was dazugelernt, nämlich was hinter diesen Konstanten steckt.
Habe ich ja auch nach Rückfrage im Forum beantwortet.
Gruß Tino
bei welcher Version geht es nun nicht?.
04.05.2009 17:06:02
Tino
Hallo,
bei mir gehts unter Version XP, xl2000, xl2003 u. xl2007.
Gruß Tino
Danke an alle
04.05.2009 17:05:21
Klaus
Danke an alle für die verständlichen Antworten …
Klaus

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige