Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Letzte Zelle mit Wert ab Zeile 6

Letzte Zelle mit Wert ab Zeile 6
15.04.2013 14:42:17
Mister
Hallo,
wie kann ich mit VBA den Inhalt der letzten gefüllten Zelle in Spalte 37 ab Zeile 6 ermitteln?
Danke und Gruß
Martin

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zelle mit Wert ab Zeile 6
15.04.2013 14:48:04
Klaus
Hi,
mit der Zeile:
msgbox cells(6,37).end(xldown).row
Achtung, wenn 6 bereits die letzte Zeile ist, ergibt das 1048576!
Grüße,
Klaus M.vdT.

AW: Letzte Zelle mit Wert ab Zeile 6
15.04.2013 14:54:22
steffen
noch ein wenig ergänzt
Sub test()
R = Cells(Rows.Count, 37).End(xlUp).Row
if R

Anzeige
cells(rows.count,37).end(xlup) owT
15.04.2013 14:49:32
Rudi

Ich Dümmerchen
15.04.2013 15:25:32
Mister
Hallo nochmals,
leider habe ich vergessen zu erwähnen, dass in der Spalte 37 Formeln sind. Ich suche also die letzte Zelle mit einem Formelergebnis.
Gruß
Martin

AW: Ich Dümmerchen
15.04.2013 15:42:29
Klaus
Hallo Martin,
Ich suche also die letzte Zelle mit einem Formelergebnis.
die liefern auch alle vorgeschlagenen Lösungen.
Anmerkung: wenn du in Zelle 7-99 die Formel =WENN(A7="";"";B7*2) oder so ähnlich stehen hast, dann ist die letzte Zelle mit Formelergebniss tatsächlich die Zelle Nummer 99 ... denn "" ist auch ein Formelergebniss!
Um das ganze aber aufzulösen, du suchst sehr warscheinlich die erste Zelle in der "" steht? Wenn bis zum ersten "" eine nicht-Unterbrochene Reihe von Werten kommt, ist es einfach:
msgbox Application.WorksheetFunction.Match("", Range(Cells(6, 37), Cells(Rows.Count, 37)), False) + 5

(das +5 hinten, weil du ja mit Zeile 6 anfängst ...)
Wenn die Reihe unterbrochen sein könnte, dann muss man eine Schleife bemühen die letzte Zeile zu finden:
Dim l As Long
Dim r As Range
For Each r In Range(Cells(6, 37), Cells(Cells(Rows.Count, 37).End(xlUp).Row, 37))
If r.Value = "" And r.Offset(-1, 0).Value  "" Then l = r.Row
Next r
MsgBox l
Ist die Liste gefiltert, wird es nochmal schwieriger ... aber davon schreibst du nichts, darum gehe ich davon aus es ist kein Filter gesetzt.
Grüße,
Klaus M.vdT.

Anzeige
AW: Ich Dümmerchen
16.04.2013 15:55:02
Mister-B
Hallo Klaus,
genau das habe ich gesucht.
Danke und Gruß
Martin

Danke für die Rückmeldung! owT.
16.04.2013 15:55:53
Klaus
.
;
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zelle mit Wert ab Zeile 6 ermitteln


Schritt-für-Schritt-Anleitung

Um die letzte Zelle mit Wert ab Zeile 6 in Spalte 37 zu ermitteln, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" klickst und "Modul einfügen" wählst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub LetzteZelleMitWert()
       Dim R As Long
       R = Cells(Rows.Count, 37).End(xlUp).Row
       MsgBox "Die letzte Zelle mit Wert in Spalte 37 ist in Zeile " & R
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle LetzteZelleMitWert aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Problem: Die Rückgabe zeigt 1048576 an.

    • Lösung: Stelle sicher, dass die Zelle in Zeile 6 nicht die einzige gefüllte Zelle ist. Der Code muss an die tatsächlichen Werte angepasst werden.
  • Problem: Die letzte Zelle hat eine Formel, aber das Ergebnis ist leer.

    • Lösung: Verwende den folgenden Code, um auch Zellen mit Formelergebnissen zu berücksichtigen:
    Dim l As Long
    Dim r As Range
    For Each r In Range(Cells(6, 37), Cells(Cells(Rows.Count, 37).End(xlUp).Row, 37))
       If r.Value = "" And r.Offset(-1, 0).Value <> "" Then l = r.Row
    Next r
    MsgBox "Die letzte Zelle mit Formelergebnis ist in Zeile " & l

Alternative Methoden

Neben VBA kannst du auch Excel-Formeln verwenden, um die letzte Zelle mit einem Wert zu ermitteln. Eine einfache Möglichkeit ist die Verwendung von VERGLEICH:

=VERGLEICH("",A6:A1048576,0)

Diese Formel gibt die Position der ersten leeren Zelle in dem angegebenen Bereich zurück.


Praktische Beispiele

Hier sind einige praktische Beispiele, um die letzte Zelle mit Wert in Spalte 37 zu ermitteln:

  1. Direkte Abfrage der letzten Zelle mit Wert:

    Sub LetzteZelle()
       MsgBox Cells(Rows.Count, 37).End(xlUp).Row
    End Sub
  2. Ermitteln der letzten Zelle mit Formelergebnis:

    Dim lastRow As Long
    lastRow = Application.WorksheetFunction.Match("", Range(Cells(6, 37), Cells(Rows.Count, 37)), False) + 5
    MsgBox "Die letzte Zelle mit Formelergebnis ist in Zeile " & lastRow

Tipps für Profis

  • Wenn du mit großen Datenmengen arbeitest, teste den Code auf kleineren Bereichen, um die Geschwindigkeit zu optimieren.
  • Verwende Option Explicit in deinem VBA-Modul, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler frühzeitig zu erkennen.
  • Denke daran, die Excel-Version zu prüfen, da sich die Funktionsweise von VBA in verschiedenen Versionen leicht unterscheiden kann.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, wenn ich eine andere Spalte verwenden möchte? Passe einfach die Zahl in Cells(Rows.Count, 37) an die gewünschte Spalte an.

2. Was mache ich, wenn meine Daten gefiltert sind? Wenn die Liste gefiltert ist, kann die Ermittlung der letzten Zelle komplizierter sein. Du musst sicherstellen, dass du die Filterbedingungen berücksichtigst oder die Filter vor der Ausführung des Codes aufhebst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige