Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Spaltenbuchstabe aus (erster) Range-Spalte ableit.

Spaltenbuchstabe aus (erster) Range-Spalte ableit.
Peter
Hallo
Mit nachfolgender Funktion leite ich aus einem benannten Bereich den Spaltenbuchstaben ab.
Beispiel:
In Tabelle "Tabelle1" wird Zelle B14 mit "ABC" benannt.
In B15 trage ich folgende Funktion ein:
=spBuNa(abc)
Das Ergebnis liefert mir - wie gewollt - "B"
Weshalb erhalte ich, wenn ich im Direktbereich ?spBuNa(abc) eintrage die Fehlermeldung:
"Feler beim Kompilieren: Argumenttyp ByRef unverträglich"
Gruss, Peter
Function spBuNa(sName As Range) As String
Dim lngSpa As Long, rg As String
lngSpa = [sName].Column
rg = Cells(1, lngSpa).Address(True, False)
spBuNa = Left(rg, InStr(1, rg, "$") - 1)
End Function

AW: Spaltenbuchstabe aus (erster) Range-Spalte ableit.
14.12.2010 22:43:57
Renee
Hallo Peter,
Ganz einfach, weil der Interpreter ABC nicht als Namen einer Range interpretieren kann, sondern als Name einer Variablen.
Wenn du hingegen eingibst ?spBuNa(Range("abc")) bekommst du das richtige Resultat.
Du kannst deine Funktion auch in einem VBA Code nur so anwenden, es sei den du hättest eine Variable abc vorher als Range("abc") definiert!
GreetZ Renée
AW: Spaltenbuchstabe aus (erster) Range-Spalte ableit.
14.12.2010 22:55:15
Peter
Hallo Renėe
Danke für die Erklärung.
Ich hatte auch versucht, die Variable als Name zu deklarieren. Scheint jedoch auch nicht zu gehen.
Was habe ich hier übersehen?
Gruß, Peter
Anzeige
.... und im Übrigen, würde das reichen
14.12.2010 22:51:34
Renee
Peter,
Function spBuNa(sName As Range) As String
spBuNa = Split(sName.Address, "$")(1)
End Function

d.h. eine UDF erübrigt sich, irgendwie ;-)
GreetZ Renée
AW: .... und im Übrigen, würde das reichen
14.12.2010 23:04:28
Rudi
Hallo Renee,
die Lösung gefällt mir ausnehmend gut.
Obwohl: Wozu die Spaltenbezeichnung als String gut ist?
Gruß
Rudi
AW: .... und im Übrigen, würde das reichen
14.12.2010 23:11:11
Peter
Hallo
Die Spaltenbezeichnung als String dient der Orientierung, wenn man beispielsweise wissen will wo sich die Spalte 89 befindet, ist der String hilfreicher, um die Position in der Tabelle zu finden.
Gruß, Peter
wie bitte ?
14.12.2010 23:18:11
Renee
Hallo Peter,
Definiere: Orientierung und für wen, was oder wie!
Da kann ich ja auch einfach schreiben:
split(columns(89).address,":$")(1)
GreetZ Renée
Anzeige
AW: wie bitte ?
14.12.2010 23:21:35
Peter
Hallo Renėe
Werde morgen ein Beispiel nachliefern, jetzt habe ich nur noch das iPhone zur Hand
Gruß, Peter
woran erkennt man einen iPhone-Besitzer?
14.12.2010 23:40:13
Rudi
Hallo,
ganz einfach: Er wird es dir zeigen ;-)))
Gruß
Rudi
AW: wie bitte ?
15.12.2010 21:16:03
Peter
Guten Abend
Hier noch eine kleines Beispiel, wie ich die "komischen" Funktionen verwende:
Ich habe mir angewöhnt, Excel-Spalten im VBA Code über benannte Zellen oder Bereiche anzusprechen. Dies hat für mich den Vorteil, dass ich Tabellen erweitern kann und der alte Code immer noch läuft, da die Referenzierung auf diese Art immer stimmt.
Wenn ich an meinem Code arbeite, muss ich zwischendurch wissen, wo ein bestimmter benannter Bereich steht. Da sagt mir halt eine Nummer - z.B. 80 - zuwenig aus, mit Spalte "CB" kann ich mich besser orientieren, auch wenn ich selbstverständlich ab Spalte A soviele Spalten markieren kann, bis Excel dann anzeigt, dass 80 Spalten markiert sind - und ich dann auch so Spalte "CB" erreicht hätte.
Natürlich kann ich den benannten Bereich auch anspringen - aber nur, wenn die Tabelle, in welcher der benannte Bereich steckt nicht ausgeblendet ist.
Gruss, Peter
?spbuchstabe([spF1].Column)
CB
?[spF1].Column
80
?spBuNam([spF1])
CB
Anzeige
AW: Spaltenbuchstabe aus (erster) Range-Spalte ableit.
14.12.2010 22:52:15
Uduuh
Hallo,
alternativ zu Rennees Vorschlag würde
?spbuna([abc])
auch funktionieren.
Gruß aus’m Pott
Udo

AW: Spaltenbuchstabe aus (erster) Range-Spalte ableit.
14.12.2010 22:59:13
Peter
Danke euch beiden!
Morgen werde ich's austesten.
Gruß, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige