Excel Spaltenzahl in Buchstaben wandeln

  • Hallo, ich habe eine Excelexport der riesen Datenmengen übermittel muss.
    Seither ging es nicht über ZZ hinaus und daher konnte ich unten angehängten Code verwenden bis else verwenden.
    jetzt aber kommt darüber hinaus und bin bei Spalte AAA angelangt. Hat jemand eine Ahnung wie ich den Code anch Else anpassen muss.


    Dim pos1, pos2, pos3 As Variant
    ' chr(65) = "A"
    ' 26 Buchstaben des Alphabeths -> 64+26 = 90 = "Z"
    If (zahl <= 26) Then
    ' die ertsen 26 Spalten werden mit A-Z benannnt
    Zahl2SpaltenWert = Chr(zahl + 64)

    Elseif (zahl <= 702) Then
    ' Die weiteren Spaltenwerden mit AA-ZZ benannnt
    pos1 = Chr(((zahl-1) \ 26) + 64)
    pos2 = Chr(((zahl-1) Mod 26) + 64 +1)
    Zahl2SpaltenWert = Cstr(pos1) + Cstr(pos2)
    Else
    ' Die weiteren Spaltenwerden mit AAA-ZZZ benannnt

    pos1 = Chr(((zahl-1) \ 26 \ 26) + 64)
    'ab hier habe ich Probleme
    pos2 = ???
    pos3 = ???
    Zahl2SpaltenWert = Cstr("A") + Cstr(pos2) + Cstr(pos3)
    End If

  • Mal abgesehen davon, dass das ein mathematisches Problem ist, das relativ leicht zu lösen ist (Das ist eine Zahl Base26, eine sogenannte "Hexavigesimal"- Zahl) stellt sich mir die Frage: Warum?


    In Excel existieren Methoden, um Zellen auch direkt über die Koordinaten anzusprechen, man muss nicht in die AAA234 - Schreibweise umwandeln...


    Eine Umrechnung kann natürlich trotzdem erfolgen, aber eben nicht mit Ifs, sondern in einer Schleife. Mit den richtigen Suchbegriffen findet man die Lösung sehr schnell bei Stackoverflow (zwar für VBA, aber das ist ja quasi das selbe):



    intDivision ist hier zu Demo- Zwecken willkürlich gewählt, bei Dir wäre das die Variable "zahl"


    Im Übrigen habe ich gesucht nach "compute base26 excel", und hier ist der Link zur Lösung.