Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

letzte beschriftete Zelle einer Spalte auslesen?

Forumthread: letzte beschriftete Zelle einer Spalte auslesen?

letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 18:58:04
daniel
hi miteinander,
wie kann ich innerhalb einer Spalte die letzte noch beschriftete Zelle auslesen und weiterverarbeiten, wenn ich nicht weiß welche Zelle es ist.
danke
daniel
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 19:07:49
Mike E.
Hallo Daniel,
so z.B.:
Dim Spalte as Integer
MsgBox(Cells(Cells.SpecialCells(xlLastCell).Row, Spalte).Value)
Gruß
Mike

AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 19:08:27
OttoH
Hallo Daniel,
folgende Routine ermittelt die letzte beschriebene Zelle in Spalte A:

Sub letzte_zelle()
Dim lastcell As Range
Dim r As Long
Set lastcell = ActiveSheet.Range("A1").End(xlDown)
r = lastcell.Row
MsgBox (r)
End Sub

Gruß OttoH

Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 19:51:35
daniel
danke für die Routine. Beim Versuch sie zu implementieren meint Excel allerdings, dass sie einen Fehler enthält. Scheinbar reibt sich excel an ".End". zumindest unterlegt er es schwarz. Da ich leider so gut wie keine Ahnung von excel habe kann ich damit überhaupt nichts anfangen. Wer weiß Abhilfe?
danke
daniel

Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 21:06:50
PeterW
Hallo Daniel,
der Code funktioniert. Hast du ihn in ein allgemeines Modul kopiert? Rechtsklick auf ein Tabellenregister - Code anzeigen. Es öffnet sich der VBA-Editor. Links befindet sich das Projektfenster, in dem irgendwo der Name deiner Datei steht. Rechtsklick auf den Namen - Einfügen - Modul. In das sich öffnende Fenster den Code kopieren. Zurück in die Tabelle. Extra - Makro - Makros - markieren - Ausführen.
Gruß
Peter

Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 21:45:05
daniel
danke, der Code funktioniert jetzt, allerdings gibt er nicht den richtigen Wert aus, sondern wirft je nachdem auf welche Spalte ich ihn ansetze mehr oder weniger Zufallswerte aus. Hab keine Ahnung von VB, aber könnte es daran liegen, dass der Variablentyp nicht stimmt. Es geht mir um Fließkommazahlen.
Außerdem würd ich den entsprechenden Wert dann gern wieder in einer Zelle und nicht in einer Box ausgeben.Wie realisiere ich das?
dank das ihr einem Newbie so geduldig die Fragen beantwortet ;)
daniel

Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
25.07.2003 22:28:50
PeterW
Hallo Daniel,
Zufallswerte sind das bestimmt nicht, allerdings kommt der Code in Schwierigkeiten sobald die Zellen nicht durchgängig mit Werten gefüllt sind. Sicherer ist es, von "unten" her die erste belegte Zelle zu suchen:

Sub letzte_zelle()
Dim r As Long
r = Range("A65536").End(xlUp).Row
Range("B11") = r
End Sub

Für die Ausgabe in einer Zelle müsstest du schon erwähnen in welche Zelle. Im Code wird der Wert in B11 geschrieben.
Gruß
Peter


Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
26.07.2003 19:03:24
daniel
wunderbar, danke Code funktioniert. Das mit den Zahlen war mein Fehler, ich habe deinen ersten Beitrag einscheinend zu schlampig gelesen. Ich dachte das Script gibt gleich den Inhalt der betreffenden Zeile aus, dabei liest es ja (wie Du ja auch geschrieben hast)nur die entsprechenden Zeilennummer aus. Daher die Verwirrung. Und da ich ich wirklich keine Ahnung von Makros und VB habe, konnte ich die Tatsache auch nicht einfach dem Code entnehmen.
Einen kleine Bitte hätte ich noch, könntest Du mir den code so erweitern, dass er gleich den Inhalt der letzten Zelle ausgibt.
Bevor Du jetzt denkst, der faule Hund lässt da die Arbeit von anderen machen, anstatt sich selber reinzuknieen. Ich arbeite sonst eigentlich nie mit EXCEL geschweige denn mit Makros, da halte ich es für Übertrieben, sich nur für dieses Makro so tief in die Materie einzulesen, dass ich es selber machen kann.
danke
daniel
Ps: Wie erreiche ich, dass das Makro immer beim Start der Arbeitsmappe automatisch ausgeführt wird?

Anzeige
AW: letzte beschriftete Zelle einer Spalte auslesen?
26.07.2003 22:03:34
PeterW
Hallo Daniel,
den Wert der letzten Zelle schreibst du so in B11:
Sub letzte_zelle()
Dim r As Long
r = Range("A65536").End(xlUp).Row
Range("B11") = Cells(r, 1) 'Zeile: letzte Zeile also r, Spalte 1 also A
End Sub

Um das Makro direkt beim Starten der Arbeitsmappe laufen zu lassen musst du im Projektfenster einen Doppelklick auf "DieseArbeitsmappe" machen und in das sich öffnende Modul folgenden Code kopieren:

Private Sub Workbook_Open()
letzte_zelle 'der Name der Prozedur
End Sub

Nee, ich denke nicht, dass du ein fauler Hund bist - ich denke Schade, der weiß nicht, was ihm entgeht. :-)
Gruß
Peter

Anzeige
Anzeige

Infobox / Tutorial

Letzte beschriftete Zelle einer Spalte auslesen


Schritt-für-Schritt-Anleitung

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

  2. Klicke im Projektfenster mit der rechten Maustaste auf den Namen deiner Datei und wähle "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub letzte_zelle()
       Dim r As Long
       r = Range("A65536").End(xlUp).Row
       Range("B11") = Cells(r, 1) ' Gibt den Inhalt der letzten beschrifteten Zelle in Spalte A in Zelle B11 aus
    End Sub
  4. Um das Makro automatisch beim Öffnen der Arbeitsmappe ausführen zu lassen, füge folgenden Code in "DieseArbeitsmappe" ein:

    Private Sub Workbook_Open()
       letzte_zelle ' der Name der Prozedur
    End Sub
  5. Schließe den VBA-Editor und speichere die Datei als Makro-fähige Arbeitsmappe (*.xlsm).

  6. Schließe die Datei und öffne sie erneut, um zu testen, ob das Makro funktioniert.


Häufige Fehler und Lösungen

  • Fehler beim Ausführen des Codes: Stelle sicher, dass du den Code in ein allgemeines Modul eingefügt hast. Klicke dazu mit der rechten Maustaste auf ein Tabellenregister und wähle "Code anzeigen".

  • Zufallswerte werden ausgegeben: Dies kann passieren, wenn deine Zellen nicht durchgängig mit Werten gefüllt sind. Verwende den Code, der von unten nach oben sucht, um das Problem zu vermeiden.

  • Der Code wird nicht erkannt: Stelle sicher, dass ".End" korrekt eingegeben wurde und dass du den richtigen Typ für deine Variablen verwendest.


Alternative Methoden

Eine alternative Methode, die in Google Tabellen verwendet werden kann, um den letzten Wert einer Spalte auszulesen, wäre die Verwendung der Formel:

=INDEX(A:A, MAX((A:A<>"")*(ROW(A:A))))

Diese Formel gibt den letzten nicht leeren Wert in Spalte A zurück und funktioniert gut in Google Tabellen.


Praktische Beispiele

  1. Wert in einer Zelle ausgeben: Der folgende Code gibt den Wert der letzten beschrifteten Zelle in Spalte A in Zelle B11 aus:

    Sub letzte_zelle()
       Dim r As Long
       r = Range("A65536").End(xlUp).Row
       Range("B11") = Cells(r, 1) ' Zeile: letzte Zeile also r, Spalte 1 also A
    End Sub
  2. Automatisierung des Prozesses: Der Code im Abschnitt "Schritt-für-Schritt-Anleitung" sorgt dafür, dass der letzte Wert der beschrifteten Zelle bei jedem Öffnen der Arbeitsmappe automatisch aktualisiert wird.


Tipps für Profis

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Um die Performance zu verbessern, kannst du die Bildschirmaktualisierung mit Application.ScreenUpdating = False und True umschalten, während das Makro läuft.
  • Experimentiere mit anderen Spalten, indem du den Bereich im Code anpasst, z. B. Range("B65536").End(xlUp).Row, um die letzte beschriftete Zelle in Spalte B zu finden.

FAQ: Häufige Fragen

1. Wie finde ich die letzte beschriftete Zelle in einer anderen Spalte?
Ändere einfach die Zeile r = Range("A65536").End(xlUp).Row in r = Range("B65536").End(xlUp).Row für Spalte B.

2. Funktioniert das auch in Google Tabellen?
Ja, in Google Tabellen kannst du die Formel =INDEX(A:A, MAX((A:A<>"")*(ROW(A:A)))) verwenden, um den letzten Wert einer Spalte auszulesen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige