Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

von Zelladresse auf Spaltennummer

Forumthread: von Zelladresse auf Spaltennummer

von Zelladresse auf Spaltennummer
26.02.2004 22:39:18
Franz W
Hallo Forum,
gibt es eine Möglichkeit (in VBA) von der Zelladresse auf die Spaltennummer zu kommen? Z.B. erhält die Variable "s = $R$30". Was ich nun suche ist die Zahl "18" als Nummer für die Spalte "R" ... Lässt sich das irgendwie da rausziehen?
Vielen Dank schon mal für eure Hilfe und Grüße
Franz
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:45:47
Juergen
Unter Optionen Register "Allgemein" auf Z1S1 bezugsart einen Hacken setzten und oben steht anstelle A-??? 1-???
gruß Jürgen
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:46:28
Thorsten
Hallo Franz
Da ja R auch eine Variable ist, muss R an einer Stelle in Deinem Code ein Wert zugewiesen werden.
Und genau an dieser Stelle kannst Du ja die Zuweisung an R "überwachen".
Z. Bsp. in VBA mit:
If R = 18 then 'Dein Code, was nun passieren soll
Vielleicht konnte ich ja helfen.
Ciao
Thorsten
Anzeige
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:49:41
Franz W.
Hallo Thorsten,
sorry, vielleicht hab ich falsch geschrieben: R ist keine Variable, sondern die Spalte "R" aus der Zelladresse "$R$30". Und das ist die achtzehnte Spalte. Aber wie sage ich das VBA???
Grüße
Franz
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:49:00
Jörg Gradert
Hallo Franz,
so?

Sub test()
Dim s As String
s = "$r$18"
MsgBox Range(s).Row
End Sub

Gruss Jörg
Anzeige
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:49:30
K.Rola
hallo,
msgbox Range("$R$30").column
Gruß K.Rola
AW: von Zelladresse auf Spaltennummer
26.02.2004 22:49:46
Josef Ehrensberger
Hallo Franz!
Z.B. so!


Sub spaltenNum()
'Anzeige im Direktfenster
Dim strAdr As String
Dim rng As Range
'Bezug als String
strAdr = "$R$30"
Debug.Print Range(strAdr).Row
'Bezug als Range
Set rng = Range("$R$30")
Debug.Print rng.Row
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
sollte natürlich .Column heissen ;-) o.T
26.02.2004 22:51:08
Josef Ehrensberger

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Habe den gleichen Fehler begangen o.T.
26.02.2004 22:56:56
Jörg Gradert
AW: Habe den gleichen Fehler begangen o.T.
26.02.2004 23:00:09
Franz W.
Kein Problem, hab's schon gemerkt - sollte ich vielleicht auch bei VBA = gut :-)). Aber vielleicht hätte ich die Frage überhaupt nicht stellen sollen bei VBA = gut :-(((. Ich glaub ich schreib doch wieder VBA = mäßig.........
Trotzdem danke und Grüße
Franz
Anzeige
VIELEN DANK AN ALLE !!
26.02.2004 22:52:51
Franz W.
Hallo an alle,
ich danke Euch allen, es klappt wunderbar!!
Beste Grüße
Franz
AW: von Zelladresse auf Spaltennummer
27.02.2004 05:52:55
andre
hallo allerseits,
die lösung ist zwar schon gefunden, aber ich habe auch mal eine interessante function gefunden:


Beschreibung
Es ist schon manchmal eigenartig. Da redet man von der 5. Spalte, in Excel ist das aber nicht Spalte 5, sondern Spalte E und auch eben nicht die 16. Spalte, sondern die Spalte P. Die beiden nachfolgenden Routinen rechnen eine Zahl in ihre äquivalente Bezeichnung einer Excel-Spalte um, und umgekehrt.
'GetExcelCol
'Recordsetindex in eine Excelspalte "umrechnen"
'z.B. 4 => "D", 27 => "AA"
'
'bInitialCall gibt an, ob die Zählung bei 0 (False) 
'oder bei 1 erfolgen soll (bInitialCall = True)
Public Function GetExcelCol(ByVal lIdx As Long, _
  Optional ByVal bInitialCall As Boolean TrueAs String
  
  If (bInitialCall) Then lIdx = lIdx + 1
  If (lIdx = 0) Then Exit Function
  GetExcelCol = GetExcelCol((lIdx - 1) \ 26, False) + _
    Chr(65 + (lIdx - 1) Mod 26)
End Function
'GetIndexOfExcelCol
'Excelspalte in Recordsetindex "umrechnen"
'z.B. "D" => 4, "AA" => 27
Public Function GetIndexOfExcelCol(ByVal strCol As String, _
  Optional ByVal slevel As Integer = 0, _
  Optional ByVal bInitialCall As Boolean TrueAs Long
  If (slevel = Len(strCol)) Then Exit Function
  GetIndexOfExcelCol = GetIndexOfExcelCol(strCol, _
    slevel + 1, False) + ((Asc(Mid(strCol, Len(strCol) - _
    slevel, 1)) - 65) + 1) * 26 ^ slevel + _
    IIf(bInitialCall, -1, 0)
End Function
Umrechnung Zahl nach Excel-Spaltenbezeichnung
strCol = GetExcelCol(17)  ' R
strCol = GetExcelCol(100) ' CW
Umrechnung Excel-Spaltenbezeichnung nach Zahl
lngZahl = GetIndexOfExcelCol("R")  ' 17
lngZahl = GetIndexOfExcelCol("CW") ' 100


     Code eingefügt mit Syntaxhighlighter 2.5

gruss andre
Anzeige
;
Anzeige

Infobox / Tutorial

Von Zelladresse auf Spaltennummer in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA die Spaltennummer aus einer Zelladresse zu ermitteln, kannst du folgende Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Projektfenster mit der rechten Maustaste auf deinen VBA-Projektordner und wähle Einfügen > Modul.
  3. Gib den folgenden Code ein:

    Sub SpaltennummerErmitteln()
       Dim s As String
       s = "$R$30"
       MsgBox Range(s).Column
    End Sub
    • Dieser Code zeigt die Spaltennummer der Zelladresse R30 an.
  4. Führe das Makro aus:

    • Drücke F5 oder klicke auf Run um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "Typkonflikt":

    • Stelle sicher, dass die Zelladresse im richtigen Format vorliegt ($R$30).
  • Fehler: "Objekt nicht gefunden":

    • Überprüfe, ob die Referenz auf das richtige Arbeitsblatt gesetzt ist.
  • Lösung für falsche Spaltennummer:

    • Wenn du die Spaltennummer für eine andere Adresse benötigst, ändere den Wert von s entsprechend.

Alternative Methoden

  1. Direkte Verwendung von Range:

    • Du kannst die Spaltennummer direkt aus einer variablen Zelladresse erhalten:
      Dim zelle As Range
      Set zelle = Range("$R$30")
      MsgBox zelle.Column
  2. Benutzung von Excel-Funktionen:

    • In Excel kannst du die Funktion =COLUMN(R30) verwenden, um die Spaltennummer zu ermitteln.

Praktische Beispiele

  • Beispiel 1: Spaltennummer für verschiedene Zelladressen:

    Sub MehrereSpaltennummern()
       Dim s As String
       s = "$A$1"
       MsgBox "Spaltennummer von " & s & ": " & Range(s).Column
       s = "$C$15"
       MsgBox "Spaltennummer von " & s & ": " & Range(s).Column
    End Sub
  • Beispiel 2: Umrechnung von Spaltenbuchstaben in Spaltennummer:

    Function BuchstabeZuSpaltennummer(buchstabe As String) As Long
       BuchstabeZuSpaltennummer = Range(buchstabe & "1").Column
    End Function

Tipps für Profis

  • Mehrstufiges Sortieren:

    • Wenn du eine mehrstufige Sortierung in Excel anwenden möchtest, kannst du die Spaltennummer als Teil deiner Sortierlogik verwenden.
  • Spaltennummer anzeigen:

    • Du kannst die Spaltennummer in einer Zelle anzeigen lassen, indem du eine benutzerdefinierte Funktion schreibst, die die Spaltennummer zurückgibt.

FAQ: Häufige Fragen

1. Wie kann ich die Spaltennummer für eine andere Zelladresse ermitteln?
Ändere einfach den Wert der Variablen s im Code zu der gewünschten Zelladresse, z.B. s = "$B$10".

2. Kann ich die Spaltennummer auch ohne VBA ermitteln?
Ja, verwende die Excel-Funktion =COLUMN(B10) in einer Zelle, um die Spaltennummer zu erhalten.

3. Was ist der Unterschied zwischen Spaltennummer und Spaltenbuchstaben?
Die Spaltennummer ist die numerische Darstellung (z.B. 18 für Spalte R), während der Spaltenbuchstabe die alphabetische Bezeichnung ist.

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