Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
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
Inhaltsverzeichnis

Fehler in eigener Funktion

Fehler in eigener Funktion
SteffenS
Hallo Zusammen,
ich habe folgende Funktion:
Function columnasletter(aletter As Long) As String
'Spaltennummer in Buchstaben umwandeln
If aletter > 26 Then 'bis Z
columnasletter = Chr(aletter \ 26 + 64) & Chr(aletter Mod 26 + 64)
Else '> Z
columnasletter = Chr(aletter + 64)
End If
End Function
Diese funktioniert soweit auch, außer bei der Spalte AZ, BZ
Bei diesen Spalten ergibt das Ergebnis: BZ bzw CZ
Sub test()
MsgBox (columnasletter(52))
MsgBox (columnasletter(78))
End Sub
Was muss ich tun damit der richtige Spaltenname herauskommt?
Danke Euch im Voraus.
VG
Steffen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler in eigener Funktion
14.12.2010 21:55:55
Josef

Hallo Steffen,
verrate mir zuerst, wozu man solchen Blödsinn braucht?

Gruß Sepp

Wahrscheinlich will er zur Spaltennr den...
15.12.2010 02:15:21
Luc:-?
…zugehörigen -buchstaben ermitteln und macht dabei einen Denkfehler, Sepp… ;-)
Hi, Steffen;
1-26=A-Z, 27-52=AA-AZ, 53-78=BA-BZ,…
52\26=2+64=66⇒B wird nicht abgerundet, weil das Ergebnis schon ganzzahlig ist. 0 muss mit einbezogen wdn, also (52-1)\26=1+64=65⇒A
(27-1)\26=1+64=65⇒A
(26-1)\26=0 → dann trifft Alternative zu und die Stelle entfällt. Wenn man das konsequent umsetzt, kann man das für beliebig große Zahlen machen, denn xl12 hat ja bekanntl max 3 Spaltenbuchstaben…
Das ist faktisch wie eine Konvertierung in ein anderes Zahlensystem — die 0 muss immer berücksichtigt wdn. Darauf hättest du eigentlich selber kommen können…
Brauchen kann man so etwas schon gelegentlich, aber iaR nicht für Range-Angaben. Ist da unnötig…
Bei meiner eigenen udF-Lösung ist das nur eine von sehr viel mehr möglichen Varianten…
Gruß Luc :-?
Anzeige
AW: Fehler in eigener Funktion
14.12.2010 22:04:39
Peter
Hallo Steffen
Nachfolgende Funktion sollte einwandfrei funktionieren.
Gruss, Peter
Function spBuchstabe(Spalte As Long) As String
Dim rg As String
rg = Cells(1, Spalte).Address(True, False)
spBuchstabe = Left(rg, InStr(1, rg, "$") - 1)
End Function

schliesse mich Sepp an
14.12.2010 22:46:51
Renee
Steffen,
Den mit Buchstaben für Spaltnamen zu arbeiten, mag wohl Sinn machen, wenn man/frau auf den Bildschirm schaut und irgendwelche Koordinaten, sprich Zelladressen interpretieren will. Aber in VBA lassen sich nun alle Spalten mal mit einfachen Zahlen (Longwerten) ansprechen.
GreetZ Renée
Anzeige
... irgenwie rekursiv, dieser Fehler! ;-) (owT)
14.12.2010 23:20:14
Renee

Die "Lösungs-Erübrigung" ;-) oT
14.12.2010 23:21:40
{Boris}
Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige