mit folgendem Code
lgLetzteSpalte = .Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lgLetzteSpalte
komme ich ja zur letzten Spalte.
Ich sollte aber als Ergebnis nicht z.B. Spalte "7" sondern "G" erhalten.
Wie geht das?
Gruß
Edwin
Um die letzte Spalte in Excel zu ermitteln und den Buchstaben anstelle der Spaltennummer zu erhalten, kannst du den folgenden VBA-Code verwenden:
Dim LetzteSpalte As Range
Set LetzteSpalte = .Cells(1, Columns.Count).End(xlToLeft)
MsgBox Left(LetzteSpalte.Address(False, False), IIf(LetzteSpalte.Column > 26, 2, 1))
Dieser Code sucht die letzte Spalte mit Inhalt und gibt den entsprechenden Buchstaben zurück, zum Beispiel "G" für die 7. Spalte.
Fehler 1: Falsche Buchstabenausgabe
Fehler 2: Keine Rückgabe
Eine alternative Methode zur Ermittlung der letzten Spalte ist die Verwendung von Excel-Formeln. Wenn du die letzte Spalte in einer bestimmten Zeile ermitteln möchtest, kannst du die Formel =CHAR(64+MAX(IF(A1:Z1<>"",COLUMN(A1:Z1))) verwenden (hier für die Zeile 1).
Angenommen, du möchtest die letzte Spalte in einem bestimmten Datenbereich ermitteln und dann eine Liste in ein ComboBox-Element einfügen. Du kannst den folgenden Code verwenden:
Dim letzteSpalte As Long
Dim letzteZeile As Long
letzteSpalte = .Cells(1, Columns.Count).End(xlToLeft).Column
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row
cboSparte.List = .Range(Cells(6, 1), Cells(letzteZeile, letzteSpalte)).Value
Cells-Eigenschaft, um flexibel auf Zellen zuzugreifen, ohne Spaltenbuchstaben verwenden zu müssen.1. Wie kann ich die letzte Spalte ermitteln, wenn mein Datenbereich variabel ist? Du kannst die letzte Spalte mit dem oben beschriebenen VBA-Code dynamisch ermitteln, egal wie viele Spalten in deinem Datenbereich vorhanden sind.
2. Gibt es eine Möglichkeit, die letzte Spalte ohne VBA zu ermitteln?
Ja, du kannst die Excel-Funktion SVERWEIS oder INDEX in Kombination mit VERGLEICH verwenden, um die letzte gefüllte Spalte zu finden. Es ist jedoch weniger flexibel als VBA.