Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

kurze frage zur spaltenüberschrift in vba

Forumthread: kurze frage zur spaltenüberschrift in vba

kurze frage zur spaltenüberschrift in vba
05.09.2004 23:01:22
bernd
hallo zusammen,
ich habe eine kurze frage:
wenn ich in spalte A1 schreibe: =Spalte(AI3), erhalte ich 35
kann ich nun im vba auch erreichen, dass er in A1 ="AI" schreibt statt 35 ?
vg
bernd
Anzeige
spaltenüberschrift per Worksheet_Change ändern
Beate
Hallo Bernd,
füge dieses Makro ins Codefenster der Tabelle, wenn AI3 sich ändert, springt der Wert in A1 entsprechend um:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$AI$3" Then
Cells(1, 1).Value = Target.Value
End If
End Sub

Gruß,
Beate
Anzeige
AW: spaltenüberschrift per Worksheet_Change ändern
Udo
Bravo, du steigerst dich!
Udo
da habe ich mich mißverständlich ausgedrückt...
bernd
...
ich habe gerade folgende formel:
...
j=35
sheets("tabelle").range("a1".value = COLUMN(j)
hier soll nun in a1 nicht 35 sondern AI stehen...
AW: da habe ich mich mißverständlich ausgedrückt...
Bert

Sub Spalte()
Dim j As Integer, SB As String
j = 35
If j < 27 Then
SB = Left(Columns(j).Address(0, 0), 1)
Else
SB = Left(Columns(j).Address(0, 0), 2)
End If
[a1] = SB
End Sub

Bert
Anzeige
Spalte auslesen
Beate
Hallo Bernd,
ich habe eine Funktion, die gibt den Spaltenbuchstaben zurück.
Also steht in A1 = ColumnLetter(35) wird AI zurückgegeben.
Es geht natürlich auch dynamischer, wenn die 35 z.B. aus Zelle B1 kommt, dann
A1 = ColumnLetter(B1)
Vielleicht hilft dir die Funktion bei den Überlegungen zu deinem Makro, es müssen nämlich Kriterien beachtet werden, wenn es über Spalte Z (=Spalte26) hinaus geht, weil ja dann 2 Buchstaben kombiniert werden müssen:

Function ColumnLetter(ColumnNumber As Integer) As String
If ColumnNumber > 26 Then
' 1st character:  Subtract 1 to map the characters to 0-25,
'                 but you don't have to remap back to 1-26
'                 after the 'Int' operation since columns
'                 1-26 have no prefix letter
' 2nd character:  Subtract 1 to map the characters to 0-25,
'                 but then must remap back to 1-26 after
'                 the 'Mod' operation by adding 1 back in
'                 (included in the '65')
ColumnLetter = Chr(Int((ColumnNumber - 1) / 26) + 64) & _
Chr(((ColumnNumber - 1) Mod 26) + 65)
Else
' Columns A-Z
ColumnLetter = Chr(ColumnNumber + 64)
End If
End Function

Gruß,
Beate
Anzeige
danke beate, es funktioniert super
bernd
mit der routine *freu*
super vielen dank
bernd
:-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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