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

Forumthread: Spaltennummer in Buchstaben umwandeln

Spaltennummer in Buchstaben umwandeln
30.10.2007 08:02:00
Peter
Guten Tag
Aus einer Tabelle frage ich in einem Code die Spaltennummer ab. Nun möchte ich diese Nummer gerne in den entsprechenden Buchstaben umwandeln, um als Message in der Statuszeile zu verwenden. Wie geht das?
Beispiel:

Sub abc()
Dim zNr as Long
Dim sNr as Long
zNr = [zeStart].Row   'dadurch wird der Variable zNr Zahl 5 zugewiesen
sNr = [spNAV].Column  'dadurch wird Variable zNr Zahl 21 zugewiesen
End Sub


Spalte 21 entspricht der Spalte U. Wie kann ich aus der Zahl 21 den Buchstaben U ableiten (resp aus 2 --> B, etc.)?
Danke für eine Rückmeldung.
Peter

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:15:33
Luschi
Hallo Peter,
so mache ich das:

Function spBuchstabe(spalte As Long) As String
Dim rg As String
rg = Cells(1, spalte).Address(True, False)
spBuchstabe = Left(rg, InStr(1, rg, "$") - 1)
End Function
Sub test1()
Dim n As Long
n = 33
MsgBox spBuchstabe(n)
End Sub

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:18:43
Peter
Hallo Luschi
Sieht super aus vielen Dank. Anschlussfrage: Was muss ich genau machen, damit ich diese Funktion innerhalb eines Projektes überall aufrufen kann?
Danke für eine Rückmeldung, Peter

AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:39:31
Luschi
Hallo Peter,
die 'Function sBuchstabe' in ein normales Modul kopieren; also n i c h t in 1 Klassenmodul von Tabellen, Formularen , DieseArbeitsmappe oder sonstigen Klassenmodulen.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:22:00
Jan3
Hi,
Über folgenden Code:
Spaltenbuchstabe = Mid([spNAV].Address, 2, 1)
Jan

AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:26:22
Peter
Hallo Jan
Vielen Dank. Das funktioniert allerdings nur, wenn es sich nicht um eine zweistellige Spaltenbezeichnung handelt.
Gruss, Peter

AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 08:45:14
Erich
Hallo Peter,
versuch mal
Replace(Cells(1, sNr).Address(0, 0), "1", "")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 09:22:00
Luschi
Hallo Erich,
auch eine tolle Idee, habe ich sofort in mein elektron. Notizbuch geschrieben
Gruß von Luschi
aus klein-Paris
Habe es eben meinem Ober-Guru gezeigt; doch der schmetterte die Idee mit den Worten ab: solche wiederverwertbaren Codeschnipsel müssen in eine Funktion eingepackt werden, solistisch möchte er sowas in meinem Vba-Code nicht sehen. Diese Miesepeter!

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 09:29:37
Erich
Hallo Luschi,
bei häufigerer Anwendung würde ich nicht die Replace-Variante wählen, sondern die schnellere: _ p>

Function SpalteTxt_ausNum(iNr As Integer)
SpalteTxt_ausNum = Left(Cells(1, iNr).Address(0, 0), 1 - (iNr > 26))
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 10:12:52
Luschi
Hallo Erich,
danke für den Tipp. Hast Du auch schon mal an Excel2007 gedacht; da gibTs ja nun auch 3-buchstabige Spalten.
Gruß von Luschi
aus klein-Paris

AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 16:00:48
Erich
Hallo Luschi,
auch bei 3stelligen Spaltenbezeichnungen (XL12) sollte das funzen:
(ungetestet - bin noch bei Excel 10)

Function SpalteTxt_ausNum(iNr As Integer)
SpalteTxt_ausNum = Left(Cells(1, iNr).Address(0, 0), 1 - (iNr > 26) - (iNr > 702))
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Spaltennummer in Buchstaben umwandeln
30.10.2007 16:27:33
Luschi
Hallo Erich,
Deine Funktion stimmt, lt. http://www.excelformeln.de/formeln.html?welcher=434 gibt es in E_2007 16.384 Spalten.
Und die 'ungetestete'! Funktion ergibt Spalte 'XFD' - that's correct and more ist not able.
Danke und Gruß von Luschi
aus klein-Paris
PS: Wollte schon Versions-Kontroll-Routinen einbauen; da kommst Du mit Deiner einfachen Logik.
Manchmal ist man einfach mit seinem 'viel zu viel'-Verständnis für Vba einfach aufgeschmissen!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spaltennummer in Buchstaben umwandeln


Schritt-für-Schritt-Anleitung

Um die Spaltennummer in den entsprechenden Buchstaben in Excel VBA umzuwandeln, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinDokument)".
    • Wähle "Einfügen" und dann "Modul".
  3. Kopiere und füge den folgenden Code in das Modul ein:

    Function spBuchstabe(spalte As Long) As String
       Dim rg As String
       rg = Cells(1, spalte).Address(True, False)
       spBuchstabe = Left(rg, InStr(1, rg, "$") - 1)
    End Function
  4. Du kannst die Funktion dann in einem anderen Sub oder direkt in der Excel-Oberfläche verwenden.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt" beim Aufrufen der Funktion.

    • Lösung: Stelle sicher, dass die übergebene Spaltennummer vom Typ Long ist und keine negativen Werte hat.
  • Fehler: Funktion gibt nur den ersten Buchstaben zurück.

    • Lösung: Achte darauf, dass die Funktion die richtige Logik für mehrstellige Spaltenbezeichnungen (z.B. "AA", "AB") implementiert.

Alternative Methoden

Eine alternative Methode, um die Spaltennummer in Buchstaben umzuwandeln, ist die Verwendung der Replace-Funktion:

Sub AlternativeMethode()
    Dim spaltenBuchstabe As String
    Dim sNr As Long
    sNr = [spNAV].Column  ' Beispiel: Spalte 21
    spaltenBuchstabe = Replace(Cells(1, sNr).Address(0, 0), "1", "")
    MsgBox spaltenBuchstabe
End Sub

Diese Methode ist einfach, aber nicht für mehr als 26 Spalten geeignet.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Anwendung der Funktionen:

  1. Um die Buchstaben der Spalte U (Spaltennummer 21) anzuzeigen:

    Sub TestBuchstabe()
       MsgBox spBuchstabe(21) ' Gibt "U" aus
    End Sub
  2. Um die Buchstaben der Spalte Z (Spaltennummer 26) anzuzeigen:

    Sub TestBuchstabeZ()
       MsgBox spBuchstabe(26) ' Gibt "Z" aus
    End Sub
  3. Um die Buchstaben der Spalte AA (Spaltennummer 27) anzuzeigen:

    Sub TestBuchstabeAA()
       MsgBox spBuchstabe(27) ' Gibt "AA" aus
    End Sub

Tipps für Profis

  • Verwende die Funktion spBuchstabe in Kombination mit anderen VBA-Funktionen, um komplexe Berichte zu erstellen.
  • Optimiere Deine Funktionen, indem Du Überprüfungen für ungültige Spaltennummern einbaust.
  • Denke daran, die Function in ein allgemeines Modul zu kopieren, damit Du sie in verschiedenen Projekten verwenden kannst.

FAQ: Häufige Fragen

1. Wie kann ich die Spaltennummer in einen Buchstaben umwandeln, wenn ich mehr als 26 Spalten habe? Die bereitgestellte Funktion spBuchstabe unterstützt auch mehr als 26 Spalten und gibt die korrekten Buchstabenkombinationen zurück (z.B. "AA", "AB").

2. Kann ich die Funktion auch in einer Excel-Formel verwenden? Ja, Du kannst die Funktion in VBA verwenden, aber nicht direkt in einer Excel-Zelle. Du müsstest sie in ein VBA-Modul einfügen und dann über ein Makro aufrufen.

3. Wie gebe ich die Spalte als Buchstabe aus, ohne VBA zu verwenden? Das ist nicht direkt möglich, aber Du kannst die Excel-Funktion ADDRESS in Kombination mit SUBSTITUTE verwenden, um den Buchstaben zu extrahieren.

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