Excel Spaltenbuchstabe errechnen

dignsag

Erfahrenes Mitglied
Hallo,

ich versuche schon einige Zeit eine Funktion zu schreiben die mir aus einer Zahl einen Spaltenbuchstaben wie in Excel errechnet. Ihr wisst ja, in Excel sind die Spalten nach Buchstaben benannt. Da das Alphabet aber nur 26 Buchstaben hat beginnt das Grid schon bald folgendermaßen zu arbeiten.

A, B, C .... X, Y, Z, AA, AB, AC ... AY, AZ, BA, BB, ...

Und genau das macht mir Probleme.

Ich habe das bisher folgendermaßen gelöst:

Code:
Public Function IntToStr(Number As Integer) As String
    If Number < 27 Then
        IntToStr = Chr(64 + Number)
    Else
        IntToStr = Chr(64 + Number / 26) & Chr(64 + Number Mod 26)
    End If
End Function

Das funktioniert aber nur bis AL, danach fängt er schon mit B an und gibt auch Sachen aus wie B@.

Ich habe in Excel für Zellen leider bisher nur Funktionen gefunden die mir die Zahl der Spalte ausgibt, nicht aber den Buchstaben, deswegen diese Funktion. Wäre schön wenn jemand wieter wüsste!

Danke.

Gruß,
Dignsag
 
Also ich hab jetzt einfach mal gebastelt, und sämtliche zwischenschritte noch in variablen gelassen, aber so

Code:
Sub test()
nummer = 53 'Versteht sich von selbst
If nummer >= 27 Then
    Var = Int((nummer - 0.1) / 26) 'prüfen, wie häufig das Alphabet durchlaufen wird. Da z.B. 
'bei nummer = 52 var = 2 wäre muss ich 0.1 abziehen, um an erster stelle noch das A zu erhalten

    blub = 26 * Var 'Da nur eine Zahl von 1 - 26 möglich ist, wird blub von der nummer abgezogen

    va = Chr(64 + Var) 'Wenn das Alphabet nur einmal durchlaufen wird, 
'steht vorne das zeichen 64 + 1, also A, etc

    bla = va & Chr(64 + (nummer - blub)) 'Selbsterklärend
    MsgBox bla
Else
    MsgBox Chr(64 + nummer)
End If
End Sub

sollte es klappen
 
Danke dir, funktioniert wunderbar!

Aber mit deinen Variablennamen könntest du ruhig etwas kreativer umgehen ;)

Ansonsten danke nochmal!
 
Zurück