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

Forumthread: Erste und Letzte Zelle aus Range ermitteln

Erste und Letzte Zelle aus Range ermitteln
30.11.2005 20:51:40
Helmut
Hallo Zusammen,
ich habe heute folgendes Problem.
Ich markiere mit der Maus in einem Tabellenblatt eine Spalte mit mehreren Zeilen (z.B. A1 bis A10).
Diesen markierten Bereich möchte ich dann Zelle für Zelle von oben nach unten mit einer Prozedur abarbeiten.
Mein Problem:
Wie komme ich an die erste Zelle (im Beispiel A1) und wie komme ich an die letzte Zelle (in meinem Beispiel die A10)?
Vorgaben für den Nutzer:
Der markierte Bereich ist jederzeit frei veränderbar! Allerdings soll nur immer in einer Spalte die Markierung erfolgen!
Hinweis:
Ein VBA-Kumpel von mir sagte mir, das es wohl eine Funktion in VBA geben würde, mit der man die erste und letzte Zelle eines markierten Bereiches in VBA ermitteln kann! Hat jemand von Euch damit schon mal zu tun gehabt? Oder hat jemand von Euch hierzu einen Lösungsansatz?
Vielen Dank bereits im Vorraus!!!
Helmut Palmen
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erste und Letzte Zelle aus Range ermitteln
30.11.2005 20:59:52
Heiko
Hallo Helmut,
z.B. so:

Sub AusgabeRange()
Dim lngErste As Long, lngLetzte As Long
Dim rngZelle As Range
lngErste = Selection.Row
MsgBox lngErste
lngLetzte = Selection.Row + Selection.Rows.Count - 1
MsgBox lngLetzte
' Schleife für Selection geht auch ohne die Rows.
For Each rngZelle In Selection
MsgBox rngZelle.Value
Next rngZelle
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett
Anzeige
AW: Erste und Letzte Zelle aus Range ermitteln
01.12.2005 17:02:45
Helmut
Hallo Heiko,
einfach geil Deine simple Lösung!! Habe diese direkt mal ausprobiert! Funktioniert prima!!!
Ich glaube der erste Fehler den man immer macht, ist das man die Sache zu kompliziert angeht bzw. das man nicht "einfach" denkt!!!
Vielen Dank für Deine Unterstützung!!!
Gruß,
Helmut
Anzeige
AW: Erste und Letzte Zelle aus Range ermitteln
30.11.2005 23:11:46
Reinhard
Hi Helmut,

Sub tt()
Range("A1:A10").Select
zellen = Split(Selection.Address, ":")
MsgBox "erste=" & Replace(zellen(0), "$", "")
MsgBox "letzte=" & Replace(zellen(1), "$", "")
End Sub

Gruß
Reinhard
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Erste und letzte Zelle aus Range ermitteln


Schritt-für-Schritt-Anleitung

Um die erste und letzte Zelle in einem markierten Bereich mithilfe von VBA zu ermitteln, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub AusgabeRange()
       Dim lngErste As Long, lngLetzte As Long
       Dim rngZelle As Range
       lngErste = Selection.Row
       MsgBox "Erste Zelle: " & lngErste
       lngLetzte = Selection.Row + Selection.Rows.Count - 1
       MsgBox "Letzte Zelle: " & lngLetzte
    
       ' Schleife durch den markierten Bereich
       For Each rngZelle In Selection
           MsgBox rngZelle.Value
       Next rngZelle
    End Sub
  4. Markiere einen Bereich in deiner Excel-Tabelle, bevor du das Makro ausführst.

  5. Führe das Makro aus: Du kannst das Makro über das Menü Ausführen oder durch Drücken von F5 starten.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden": Stelle sicher, dass der markierte Bereich korrekt ist. Wenn du nichts markiert hast, wird der Code nicht funktionieren.

  • Lösung: Markiere einen Bereich in einer einzigen Spalte, bevor du das Makro ausführst.

  • Fehler: "Typkonflikt": Dieser Fehler tritt auf, wenn du versuchst, mit einem nicht unterstützten Datentyp zu arbeiten.

  • Lösung: Vergewissere dich, dass die Zellen im markierten Bereich tatsächlich Werte enthalten.


Alternative Methoden

Eine alternative Methode zur Ermittlung der ersten und letzten Zelle in einem Bereich könnte wie folgt aussehen:

Sub tt()
   Range("A1:A10").Select
   zellen = Split(Selection.Address, ":")
   MsgBox "Erste Zelle: " & Replace(zellen(0), "$", "")
   MsgBox "Letzte Zelle: " & Replace(zellen(1), "$", "")
End Sub

Hier wird die Selection.Address verwendet, um die Adresse des markierten Bereichs zu splitten.


Praktische Beispiele

Wenn du den markierten Bereich in einem Arbeitsblatt hast, kannst du die Funktion verwenden, um z.B. die Werte der Zellen in einer MsgBox anzuzeigen. Dies ist besonders nützlich, wenn du die letzte Zelle mit Inhalt finden willst:

Sub LetzteZelleMitInhalt()
   Dim letzteZelle As Range
   Set letzteZelle = Cells(Rows.Count, "A").End(xlUp)
   MsgBox "Die letzte Zelle mit Inhalt in Spalte A ist: " & letzteZelle.Address
End Sub

Tipps für Profis

  • Nutze Application.WorksheetFunction für erweiterte Berechnungen mit den Werten der Zellen, die du ermittelst.
  • Wenn du häufig mit vba letzte zelle in spalte arbeitest, erstelle dir eine eigene Funktion, die diese Abfragen vereinfacht.
  • Dokumentiere deinen Code gut, damit du und andere ihn später leichter nachvollziehen können.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zelle in einem bestimmten Bereich ermitteln?
Du kannst die Cells(Rows.Count, "A").End(xlUp)-Methode verwenden, um die letzte Zelle mit Inhalt in Spalte A zu finden.

2. Was passiert, wenn ich mehrere Zellen in verschiedenen Spalten markiere?
Der Code funktioniert nur, wenn du einen zusammenhängenden Bereich in einer einzigen Spalte markierst. Andernfalls musst du den Code anpassen, um die Auswahl zu verarbeiten.

3. Kann ich diese Methode auch für andere Bereiche verwenden?
Ja, du kannst die Methode für jeden gewünschten Bereich anpassen, indem du die Zellen entsprechend änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige