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

Forumthread: Spaltenbuchstabe aus Range ermitteln

Spaltenbuchstabe aus Range ermitteln
18.10.2007 10:57:38
Ceyser
Hallo Excel-Spezialisten,
ich habe eine mir eine Funktion geschrieben, die den Spaltenbuchstaben ermittelt:

Function fncSpaltenbuchstabeErmitteln(strAddress As String) As String
fncSpaltenbuchstabeErmitteln = IIf(IsNumeric(Right(Left(strAddress, 2), 1)) _
, Left(strAddress, 1), _
Left(strAddress, 2))
End Function


und hier ein Prozedur, zum Testen:


Sub prcFunktionTesten()
MsgBox fncSpaltenbuchstabeErmitteln(Cells(1, 256).Address(0, 0))
MsgBox fncSpaltenbuchstabeErmitteln(Cells(65536, 1).Address(0, 0))
End Sub


Das Ganze funktioniert auch, soweit so gut - Nun wollte ich euch mal fragen,
ob jemand vielleicht eine elgantere / übersichtlichere / kürzere / schnellere Möglichkeit kennt.
Liebe Grüße
Ceyser Soze

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbuchstabe aus Range ermitteln
18.10.2007 11:45:00
Beate
Hallo,
dies gibt den Spaltenbuchstaben der aktiven Spalte zurück:
Sub test()
MsgBox Split(ActiveCell.Address, "$")(1)
End Sub



Gleiches erreichst du hiermit:
Sub Spaltenbuchstabe()
MsgBox [SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,)]
End Sub

Gruß,
Beate

Anzeige
AW: Spaltenbuchstabe aus Range ermitteln
18.10.2007 13:18:44
Ceyser
Hallo Beate,
vielen Dank für die Lösung.
Gruß
CS

?replace(cells(1,[X7].column).Address(0,0),"1","")
18.10.2007 12:02:00
NoNet
Hallo Ceyser,
versuche es mal damit :

?replace(cells(1,[AW730].column).Address(0,0),"1","")


Das funktioniert natürlich auch mit jeder anderen gültigen EXCEL-Zelladresse !
Gruß, NoNet

Anzeige
AW: ?replace(cells(1,[X7].column).Address(0,0),"1","")
18.10.2007 13:20:00
Ceyser
Hi NoNet,
auch Dir vielen Dank!
Gruß
CS
;
Anzeige
Anzeige

Infobox / Tutorial

Spaltenbuchstaben aus Range ermitteln


Schritt-für-Schritt-Anleitung

Um den Spaltenbuchstaben aus einer Range in Excel zu ermitteln, kannst du die folgende Funktion nutzen:

Function fncSpaltenbuchstabeErmitteln(strAddress As String) As String
    fncSpaltenbuchstabeErmitteln = IIf(IsNumeric(Right(Left(strAddress, 2), 1)), _
    Left(strAddress, 1), _
    Left(strAddress, 2))
End Function

Um diese Funktion zu testen, kannst du die folgende Sub-Prozedur verwenden:

Sub prcFunktionTesten()
    MsgBox fncSpaltenbuchstabeErmitteln(Cells(1, 256).Address(0, 0))
    MsgBox fncSpaltenbuchstabeErmitteln(Cells(65536, 1).Address(0, 0))
End Sub

Mit dieser Methode kannst du den Spaltenbuchstaben für jede beliebige Zelle in Excel ermitteln.


Häufige Fehler und Lösungen

  • Fehler: Die Funktion gibt eine Fehlermeldung zurück.

    • Lösung: Stelle sicher, dass die eingegebene Zelladresse korrekt ist und dass die Funktion im richtigen Kontext aufgerufen wird.
  • Fehler: Der Spaltenbuchstabe wird nicht richtig angezeigt.

    • Lösung: Überprüfe, ob die Eingabe der Zelladresse im richtigen Format erfolgt ist. Nutze Cells(Zeile, Spalte).Address für die korrekte Rückgabe.

Alternative Methoden

Es gibt mehrere Möglichkeiten, den Spaltenbuchstaben aus einer Range zu ermitteln. Hier sind zwei einfache VBA-Alternativen:

  1. Aktive Zelle:

    Sub test()
       MsgBox Split(ActiveCell.Address, "$")(1)
    End Sub
  2. Mit ADDRESS-Funktion:

    Sub Spaltenbuchstabe()
       MsgBox [SUBSTITUTE(ADDRESS(1, COLUMN(), 4), 1,)]
    End Sub

Beide Methoden sind einfach und nutzen die integrierten Funktionen von Excel, um den Spaltenbuchstaben auszugeben.


Praktische Beispiele

Hier sind einige praktische Anwendungen der obigen Methoden:

  • Du kannst die Funktion fncSpaltenbuchstabeErmitteln in einem Makro verwenden, um den Buchstaben für mehrere Zellen in einer Schleife zu ermitteln.
Sub TestMultipleColumns()
    Dim i As Integer
    For i = 1 To 10
        MsgBox fncSpaltenbuchstabeErmitteln(Cells(1, i).Address(0, 0))
    Next i
End Sub
  • Eine weitere Möglichkeit ist, die Spaltenbuchstaben in einer Liste auszugeben. Hier ein einfaches Beispiel:
Sub ListSpaltenbuchstaben()
    Dim i As Integer
    For i = 1 To 26
        Cells(i, 1).Value = fncSpaltenbuchstabeErmitteln(Cells(1, i).Address(0, 0))
    Next i
End Sub

Tipps für Profis

  • Nutze die Funktion COLUMN() in Kombination mit ADDRESS(), um dynamisch den Spaltenbuchstaben zu erhalten.

  • Wenn du mit großen Datenmengen arbeitest, solltest du die Performance im Auge behalten. Verwende die Funktion nur für die Zellen, die tatsächlich benötigt werden.

  • Überlege, ob du die Funktion in einer benutzerdefinierten Excel-Formel verwenden möchtest, um die Wiederverwendbarkeit zu maximieren.


FAQ: Häufige Fragen

1. Wie kann ich den Spaltenbuchstaben für eine bestimmte Zelle ermitteln?
Du kannst die Funktion fncSpaltenbuchstabeErmitteln verwenden, indem du die Adresse der Zelle übergibst, z.B. fncSpaltenbuchstabeErmitteln(Cells(1, 2).Address).

2. Gibt es eine Möglichkeit, mehrere Spaltenbuchstaben gleichzeitig anzuzeigen?
Ja, du kannst eine Schleife verwenden, um die Buchstaben für mehrere Spalten zu ermitteln und sie in Zellen auszugeben, wie im praktischen Beispiel gezeigt.

3. Funktioniert das in allen Excel-Versionen?
Ja, die VBA-Funktionen sind mit den meisten Excel-Versionen kompatibel, die VBA unterstützen. Achte darauf, dass du in einer Version arbeitest, die VBA unterstützt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige