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

Forumthread: Buchstabencode der Spalte in VBA ermitteln

Buchstabencode der Spalte in VBA ermitteln
12.06.2017 14:52:27
guenni
Hallo Excel Profis,
Folgendes Problem kann man meistens mit einem RC-Bezug umgehen, in meinem konkreten Fall müsste ich jedoch unverhältnismäßig viel damit verbundenen Code ändern.
Benötige für die Formelbildung in VBA den Buchstabencode einer Spalte.
was ich habe, ist ein Range-objekt mit der ganzen Spalte, und damit die Spaltennummer.
wie komme ich zur Buchstabenkombination statt der Nummer?
Set Sp = Cells(1, 0815).EntireColumn
SpaltNummer=Sp.Column
SpaltBuchstabenkombi=? ' Sollte "AEI" ergeben

Danke,
Günther
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 14:56:05
dirk
Hallo!
Kann man über eine Funktion realisieren (´hab ich mal irgendwo gefunden, weiss aber nicht mehr wo).
Public Function spaltenbuchstabe(spaltenzahl As Integer) As String
spaltenbuchstabe = Split(Cells(1, spaltenzahl).Address, "$")(1)
End Function

Gruss
Dirk aus Dubai
Anzeige
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 15:09:59
mmat
nicht sehr elegant, aber ergibt AEI
Function Dez2x26(ByVal d As Integer) As String
Dim s As String, n As Integer
s = "": n = 0
If (d > 702) Then While (d > 676): d = d - 676: n = n + 1: Wend: If (n > 0) Then s = s + Chr( _
n + 64)
n = 0
While (d > 26): d = d - 26: n = n + 1: Wend: If (n > 0) Then s = s + Chr(n + 64) 'das Ding  _
hat maximal 2 stellen
Dez2x26 = s + Chr(d + 64)
End Function

Anzeige
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 15:41:58
mmat
Hallo allerseits,
ich will ja nicht behaupten, das die vorgestellten Lösungen die auf der .address Eigenschaft eines Range-Objekts basieren nicht praktikabel sind. Diese funktionieren allerdings nur, wenn gerade eine Tabelle geöffnet ist, und da es um die Spalte 815 geht, muss es eine im neuen Format (ab 2007) sein.
Daher verwende ich lieber eine Funktion.
vg
Anzeige
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 16:39:21
guenni
Danke klappt super!
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 15:14:56
yummi
Hallo Günther,

Function WandleZahlInBuchstaben(ByVal iWert As Integer) As String
Dim Spaltenbuchstabe As String
Spaltenbuchstabe = Right(Columns(iWert).Address, Len(Columns(iWert).Address) - InStrRev( _
Columns(iWert).Address, "$"))
WandleZahlInBuchstaben = Spaltenbuchstabe
End Function
Gruß
yummi
Anzeige
Functions sind voll überflüssig...
12.06.2017 15:18:26
EtoPHG
Hallo,
Es genügt doch wirklich
SpaltBuchstabenKombi = Split(Cells(1, SpaltNummer).Address,"$")(1)

Warum sollte die Split-Funktion nochmals in eine Function gepackt werden?
Gruess Hansueli
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 15:20:23
JoWE
Hallo Günther,
so vllt.:
Set Sp = Cells(1, 815).EntireColumn
Spaltnummer = Sp.Column
SpaltBuchstabenkombi = Split(Cells(Spaltnummer, 815).Address, "$")(1) ' Sollte "AEI" ergeben
MsgBox SpaltBuchstabenkombi
End Sub
Gruß
Jochen
Anzeige
AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 15:22:56
JoWE
sorry
Blödsinn beim koieren, so aber:

Set Sp = Cells(1, 815).EntireColumn
Spaltnummer = Sp.Column
SpaltBuchstabenkombi = Split(Cells(1, Spaltnummer).Address, "$")(1) ' Sollte "AEI" ergeben
MsgBox SpaltBuchstabenkombi

AW: Buchstabencode der Spalte in VBA ermitteln
12.06.2017 17:54:20
snb

Sub M_snb()
MsgBox Replace([address(1,815,4)], "1", "")
End Sub

Anzeige
Danke
12.06.2017 16:49:56
guenni
Danke für die vielen Antworten.
Bin ja schon mit Nr 1 weitergekommen, konnte aber nicht so schnell rückmelden
viele Grüße
Günther
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Buchstabencode der Spalte in VBA ermitteln


Schritt-für-Schritt-Anleitung

Um den Buchstabencode einer Spalte in VBA zu ermitteln, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge den folgenden Code ein:

    Public Function Spaltenbuchstabe(spaltenzahl As Integer) As String
       Spaltenbuchstabe = Split(Cells(1, spaltenzahl).Address, "$")(1)
    End Function
  4. Verwende die Funktion, um die Spaltennummer in den entsprechenden Buchstabencode umzuwandeln. Zum Beispiel:

    Sub Test()
       Dim SpaltenNummer As Integer
       SpaltenNummer = 815
       MsgBox Spaltenbuchstabe(SpaltenNummer) ' Gibt "AEI" aus
    End Sub
  5. Führe das Makro aus, um den Buchstabencode der gewählten Spalte zu erhalten.


Häufige Fehler und Lösungen

  • Fehler: "Typ-Fehler"
    Stelle sicher, dass die Spaltennummer als Integer übergeben wird. Eine nicht numerische Eingabe führt zu einem Typ-Fehler.

  • Fehler: "Falsches Ergebnis"
    Überprüfe, dass Du die richtige Spaltennummer übergibst. In Excel 2007 und neuer können Spalten über 26 Buchstaben hinausgehen (z.B. "AA", "AB", etc.).


Alternative Methoden

Es gibt verschiedene Möglichkeiten, die Spaltennummer in einen Buchstabencode umzuwandeln:

  1. Verwendung der Excel-Funktion Address:

    Dim SpaltenBuchstabe As String
    SpaltenBuchstabe = Split(Cells(1, 815).Address, "$")(1) ' Gibt "AEI" aus
  2. Direkte Umwandlung:

    Function ZahlInBuchstaben(ByVal nummer As Integer) As String
       Dim buchstaben As String
       buchstaben = ""
       Do While nummer > 0
           nummer = nummer - 1
           buchstaben = Chr(65 + (nummer Mod 26)) & buchstaben
           nummer = nummer \ 26
       Loop
       ZahlInBuchstaben = buchstaben
    End Function

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Buchstabencodes in VBA verwenden kannst:

  • Umwandlung einer Spaltennummer in einen Buchstabencode:

    Sub Beispiel()
       Dim spaltenNummer As Integer
       spaltenNummer = 27 ' Beispiel: Spalte AA
       MsgBox Spaltenbuchstabe(spaltenNummer) ' Gibt "AA" aus
    End Sub
  • Aktuelle Spalte als Buchstaben ausgeben:

    Sub AktuelleSpalte()
       Dim aktuelleSpalte As String
       aktuelleSpalte = Spaltenbuchstabe(ActiveCell.Column)
       MsgBox "Aktuelle Spalte: " & aktuelleSpalte
    End Sub

Tipps für Profis

  • Verwende die Application.ConvertFormula Methode, um Formeln einfacher zu konvertieren und die Spaltenbuchstaben zu ermitteln.
  • Optimiere Deinen Code: Wenn Du oft die Spaltenbuchstaben benötigst, erstelle eine Utility-Funktion, die Du überall in Deinem VBA-Projekt aufrufen kannst.
  • Nutze die Address-Eigenschaft für eine schnelle und einfache Lösung, aber sei vorsichtig, da sie von der geöffneten Tabelle abhängt.

FAQ: Häufige Fragen

1. Wie kann ich die Buchstabencodes für mehrere Spalten in einer Schleife ausgeben?
Du kannst eine Schleife verwenden, um die Spaltennummern durchzulaufen und die Buchstabencodes auszugeben:

Sub AlleSpaltenBuchstaben()
    Dim i As Integer
    For i = 1 To 26 ' Beispiel für die ersten 26 Spalten
        MsgBox Spaltenbuchstabe(i)
    Next i
End Sub

2. Was ist der Unterschied zwischen Cells und Columns in VBA?
Cells bezieht sich auf eine bestimmte Zelle, während Columns sich auf die gesamte Spalte bezieht. Wenn Du nur den Buchstabencode benötigst, kannst Du beide verwenden, aber Columns ist bei der Buchstabenausgabe oft einfacher.

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