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

VBA , Ermittlung der Koordinaten eines Bereiches

Forumthread: VBA , Ermittlung der Koordinaten eines Bereiches

VBA , Ermittlung der Koordinaten eines Bereiches
16.08.2003 12:39:13
Günther Woll
Hallo zusammen,
Ich möchte gerne die Zeilen-Nr der ersten und letzten Zeile, sowie die Spalten-Nr der ersten und letzten Spalte des selektierten Bereiches in Variablen schreiben. Und bin Euch dabei für Euere super Unterstützung dankbar, die mir viel Zeit spart.
Range("C3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ErsteZeile=?
LetzteZeile=?
ErsteSpalte=?
LetzteSpalte=?
und das gleiche bei absoluter Vorgabe des Bereiches, z.B.
Range(A4:D6)
Vielen Dank im voraus
Günther Woll
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA , Ermittlung der Koordinaten eines Bereiches
16.08.2003 12:50:01
Ramses
Hallo,
Mit Range("C3").Select kannst du direkt auslesen welche Zeile und Spalte
Range("C3").Row
Range("C3").Column
Gibt dir Zeilen- und Spaltennummern zurück.
In einer Selection ist etwas schwieriger, hier würde ich eine Schleife verwenden.
EXCEL durchsucht den Selections-Bereich immer Zeilenweise bis zur letzten Zelle
Option Explicit

Sub Got_Number_of_Row_and_Column()
Dim StartR As Long, StartC As Integer
Dim EndR As Long, EndC As Integer
Dim c As Excel.Range
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
StartR = ActiveCell.Row
StartC = ActiveCell.Column
For Each c In Selection
EndR = c.Row
EndC = c.Column
Next
MsgBox "Start in Koordinaten: Z" & StartR & "C" & StartC & vbCrLf & "Ende bei Koordinaten: Z" & EndR & "C" & EndC
End Sub

Gruss Rainer

Anzeige
AW: VBA , Ermittlung der Koordinaten eines Bereiches
16.08.2003 15:19:09
GraFri
Hallo
Sub Zeilen_Spalten()
Dim strBereich As String
Dim strFirstCell As String
Dim strLastCell As String

strBereich = "$F$23:$CD$4567"
strFirstCell = Left(strBereich, Application.Find(":", strBereich) - 1)
strLastCell = Right(strBereich, Len(strBereich) - Application.Find(":", strBereich))

MsgBox "Erste Zeile: " & Range(strFirstCell).Row & ", " & Chr(10) & "erste Spalte: " & Range(strFirstCell).Column
MsgBox "Letzte Zeile: " & Range(strLastCell).Row & ", " & Chr(10) & "letzte Spalte: " & Range(strLastCell).Column
End Sub
mfg, graFri

Anzeige
;
Anzeige

Infobox / Tutorial

Koordinaten eines Bereiches in Excel mit VBA ermitteln


Schritt-für-Schritt-Anleitung

Um die Koordinaten eines selektierten Bereichs in Excel zu ermitteln, kannst Du folgende Schritte ausführen:

  1. Öffne das VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Menü auf Einfügen und wähle Modul aus.
  3. Füge den folgenden Code ein:

Sub Got_Number_of_Row_and_Column()
    Dim StartR As Long, StartC As Integer
    Dim EndR As Long, EndC As Integer
    Dim c As Excel.Range

    ' Selektieren des Bereichs
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    StartR = ActiveCell.Row
    StartC = ActiveCell.Column

    ' Durchlaufen der ausgewählten Zellen
    For Each c In Selection
        EndR = c.Row
        EndC = c.Column
    Next

    ' Ausgabe der Koordinaten in einem MessageBox
    MsgBox "Start in Koordinaten: Z" & StartR & "C" & StartC & vbCrLf & "Ende bei Koordinaten: Z" & EndR & "C" & EndC
End Sub
  1. Führe das Makro aus:
    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Wähle den gewünschten Bereich aus und führe das Makro aus (ALT + F8, dann das Makro auswählen und auf Ausführen klicken).

Häufige Fehler und Lösungen

  • Fehler: "Kein gültiger Bereich ausgewählt"

    • Lösung: Stelle sicher, dass Du einen gültigen Bereich in Excel ausgewählt hast, bevor Du das Makro ausführst.
  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Überprüfe, ob ActiveCell tatsächlich auf eine Zelle zeigt. Wenn der aktive Bereich leer ist, kann dieser Fehler auftreten.

Alternative Methoden

Du kannst auch die Koordinaten direkt aus einer bestimmten Zelle ermitteln, ohne eine Schleife verwenden zu müssen. Hier ist ein einfaches Beispiel:

Sub KoordinatenDirekt()
    Dim ErsteZeile As Long
    Dim LetzteZeile As Long
    Dim ErsteSpalte As Long
    Dim LetzteSpalte As Long

    ErsteZeile = Range("C3").Row
    ErsteSpalte = Range("C3").Column
    LetzteZeile = ActiveCell.SpecialCells(xlLastCell).Row
    LetzteSpalte = ActiveCell.SpecialCells(xlLastCell).Column

    MsgBox "Erste Zeile: " & ErsteZeile & ", Erste Spalte: " & ErsteSpalte & vbCrLf & _
           "Letzte Zeile: " & LetzteZeile & ", Letzte Spalte: " & LetzteSpalte
End Sub

Praktische Beispiele

  1. Beispiel zur Ermittlung der Koordinaten eines vordefinierten Bereichs:
Sub GeokoordinatenErmitteln()
    Dim strBereich As String
    Dim strFirstCell As String
    Dim strLastCell As String

    strBereich = "$F$23:$CD$4567"
    strFirstCell = Left(strBereich, Application.Find(":", strBereich) - 1)
    strLastCell = Right(strBereich, Len(strBereich) - Application.Find(":", strBereich))

    MsgBox "Erste Zeile: " & Range(strFirstCell).Row & ", Erste Spalte: " & Range(strFirstCell).Column
    MsgBox "Letzte Zeile: " & Range(strLastCell).Row & ", Letzte Spalte: " & Range(strLastCell).Column
End Sub
  1. Beispiel zur Verwendung von xlLastCell:

Wenn Du den letzten benutzten Bereich ermitteln möchtest, kannst Du ActiveCell.SpecialCells(xlLastCell) nutzen, um die Koordinaten der letzten Zelle zu erhalten.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Nutze die Debug.Print-Anweisung, um Zwischenergebnisse im Direktfenster anzuzeigen, während Du den Code testest.

  • Überlege, ob Du die Ermittlung der Zeilen und Spalten in eine Funktion auslagern möchtest, um die Wiederverwendbarkeit des Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die Koordinaten eines nicht selektierten Bereichs ermitteln? Du kannst eine Range-Variable definieren und die Koordinaten wie im Beispiel mit Range("A1:B2").Row und Range("A1:B2").Column direkt abfragen.

2. Was ist der Unterschied zwischen xlLastCell und UsedRange? xlLastCell gibt die letzte Zelle zurück, die Daten enthält, während UsedRange den gesamten Bereich der benutzten Zellen in einem Arbeitsblatt zurückgibt.

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