Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
Anzeige
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
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige