Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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

Probleme beim Verbinden von A und J

Probleme beim Verbinden von A und J
23.05.2023 21:01:51
Harald

Ich habe eine kleine Funktion geschrieben, die den Spaltenname berechnet aber bei der Spalte AJ ( 36 ) bekomme ich kein Ergebnis.
Das Problem ist tiefgehender auch folgendes bringt kein Ergebnis:

Sub aaaa()

b = Chr(65) & Chr(74)
c = "A" & "J"

End Sub

Die Kombination von A am Ende und J am Anfang lässt sich offenbar nicht verbinden. Getestet auf mehreren Excel Versionen ( 365 und 2010 )

Die Frage ist warum ?


Anbei noch die Funktion für den Spaltennamen

Public Function sp_na(spalte As Variant) As Variant 'des

Dim ist_nr As Integer

On Error GoTo ist_spname
spn = spalte
ist_nr = spalte
On Error GoTo 0
spn = ""

If spalte 703 Then ' ZZ = 702
If spalte 27 Then
spn = Chr(spalte + 64)
Else
spl = Int((spalte - 1) / 26)
spr = spalte - spl * 26
spn = Chr(spl + 64) & Chr(spr + 64)
End If
Else
sp1 = Int((spalte - 27) / 26 / 26)
sp2 = Int((spalte - 1) / 26) - sp1 * 26
sp3 = spalte - sp1 * 26 * 26 - sp2 * 26
spn = Chr(sp1 + 64) & Chr(sp2 + 64) & Chr(sp3 + 64)
End If

ist_spname:
sp_na = spn

End Function

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme beim Verbinden von A und J
23.05.2023 21:59:06
GerdL
Hallo Harald,

Excel nimmt man doch um nicht selbst rechnen zu müssen. :-)
Sub Unit()


Dim spalte As Long: spalte = 36
Dim Bst As String: Bst = "AJ"

MsgBox Split(Columns(spalte).Address(0, 0, xlA1), ":")(0)
MsgBox Split(Cells(1, spalte).Address, "$")(1)

MsgBox Range(Bst & 1).Column


End Sub
Wenn du deine Variablen deklarierst, läuft deine Funktion vielleicht besser.

Gruß Gerd


AW: Probleme beim Verbinden von A und J
23.05.2023 23:13:25
Luschi
Hallo Harald,

warum Googelst Du nicht?
H i e r gibt es genug Lesestoff dazu.

Gruß von Luschi
aus klein-Paris


Anzeige
AW: Probleme beim Verbinden von A und J
23.05.2023 23:41:06
Harald
Hallo Luschi,

schaue dir mal bei der ersten Funktion im Einzelschritt den Wert der Variable strErg im Debugger an. Bei 36 wird bei strErg nichts im Debugger angezeigt.

Der Debugger scheint das Problem zu sein

Gruß Harald

Sub Spaltenbuchstabe_aus_Spaltennmmer_ermitteln()
 
'** Dimensionierung der Variablen
Dim lngSp As Long
Dim strAdr As String
Dim lngCnt As Long
Dim strErg As String
 
'** Erfasste Spaltennummer
lngSp = 36 ' ActiveSheet.Range("P7").Value
 
'** Aus Spaltennummer ermittelte Adresse
strAdr = ActiveSheet.Cells(1, lngSp).Address
 
'** Ermittlung des zweiten $-Zeichens in der Zelladresse
lngCnt = InStr(2, strAdr, "$") - 1
 
'** Extrahieren der Spalten-Buchstaben aus Zelladresse
strErg = WorksheetFunction.Substitute(Left(strAdr, Len(strAdr) - (Len(strAdr) - lngCnt)), "$", "")
 
'** Ausgabe der reinen Spaltenbuchstaben
ActiveSheet.Range("P8").Value = strErg


Range(strErg & "1").Value = "Hallo"
  
 
End Sub


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 01:15:17
ralf_b
vielleicht schaust du dir gleichzeitig mal das Lokalfenster an. Du stellst fest, das die Variable einen Wert erhalten hat und es kein wirkliches Problem gibt auf dem man rumreiten müßte.

falls du eine Lösung ohne die vielen Variablen bevorzugst.
Function getSpaltenbuchstabe(nr&) As String

  getSpaltenbuchstabe = Replace(Cells(1, nr).Address(0, 0), 1, "")

End Function


Interessantes Problem, gar nicht so simpel
24.05.2023 04:21:33
lupo1
Lösung rechnerisch, also ohne ADRESSE (ab XL2019 wegen TEXTKETTE):

A1: Spaltennummer
B1: =WECHSELN(TEXTKETTE(ZEICHEN(64+(REST(KÜRZEN((A1-{27.1.1})/{676.26.1}-{0.1.0});{16384.26.26})+{0.1.1})*(A1>{0.26.0})));"@";)

möglicherweise noch abkürzbar. Verarbeitet "Spalten" theoretisch über 16384=XFD hinaus - bis 18278=ZZZ. Könnte aber auch noch auf mehr als 3stellig erweitert werden, über Array-Erweiterungen in den 6 {}.

RPP63 hat übrigens eine runde Spaltennummer!


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 09:53:27
UweD
Hallo

Function BSp(Sp As Integer) As String
    BSp = Split(Cells(1, Sp).Address(1, 0), "$")(0)
End Function
Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
136AJ

ZelleFormel
B1=BSp(A1)


LG UweD


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 10:22:24
Harald
Hallo,

also der aktuelle Status ist, das der Debugger Strings nicht anzeigt, die aus einem "A" am Ende und einem "J" am Anfang gebildet werden.

Sub aaa
   c = "A" & "J"
End Sub
Der Debugger zeigt bei Variable c nichts an, es ist aber trotzdem der korrekte Inhalt drin

Gruß Harald


AW: Probleme beim Verbinden von A und J
24.05.2023 10:25:25
onur
"Der Debugger zeigt bei Variable c nichts an" ? Wann und wo genau zeigt der VBA-Editor nix an ?


AW: Probleme beim Verbinden von A und J
24.05.2023 10:35:15
peterk
Hallo

Der Debugger zeigt auch beim String "AJHHHHHH" nichts. Wenn Du das Local-Fenster benutzt (Ansicht-Lokal Fenster) werden Dir die Variablen richtig angezeigt. Fazit: Fehler in der Tootip Darstellung.

Noch andere Versuche:
"AJ 1" - Darstellung "AJ "
"AJ 1 1" - Darstellung "AJ 1 "

Peter


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 10:43:58
Oberschlumpf
Hi,

hier, 3 Zustände = alles korrekt, wie es ist:

Userbild
c ist leer, na klar, weil ja das Makro noch in der 1. Zeile ist

Userbild
c ist noch immer leer, na klar, weil die 2. Zeile ja noch gar nicht ausgeführt wurde

Userbild
c hat nun den korrekten Inhalt, na klar, weil ja der dafür notwendige Code fehlerfrei durchgeführt wurde.

Erklär mir deine Frage/dein Problem bitte so, dass auch ich es verstehe.

Ciao
Thorsten


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 10:50:52
peterk
Hallo

Userbild

Peter


AW: Probleme beim Verbinden von A und J
24.05.2023 10:51:02
UweD
Hi

ich denke, ihm geht es NUR darum, dass nichts angezeigt wird, wenn er mit der Maus drübergeht.
Userbild

Im Direktfenster, im Lokalfenster, die Variable selbst werden richtig angezeigt / gefüllt

LG UweD


AW: Probleme beim Verbinden von A und J
24.05.2023 11:10:28
onur
Wie soll man denn auch all das mit „VBA gut“ wissen ?


Anzeige
AW: Probleme beim Verbinden von A und J
24.05.2023 12:22:25
snb
Oder so:

Function F_snb()
   MsgBox "Spalte " & Replace(Chr(64 + Selection.Column \ 26 ^ 2) & Chr(64 + (Selection.Column Mod 26 ^ 2) \ 26) & Chr(64 + Selection.Column Mod 26), "@", "")
End Function


AW: Probleme beim Verbinden von A und J
24.05.2023 14:03:53
Daniel
Hi
kann ich nicht nachvollziehen. bei mir funktionert das.
Wenn jemand schreibt: "Die Kombination von A am Ende und J am Anfang" und das dann auf folgendes bezieht c = "A" & "J", dann habe ich schon mal einen Anfangsverdacht, wo das Problem eigentlich liegt: da hat jemand in seiner Kindheit wohl die Folgen der Seamstraße verpasst, als Grobi erklärt hat, was "Anfang" und was "Ende" ist ...

mein Tip:
lass den Quatsch, Spaltennummern in Buchstaben umzurechnen.
in VBA brauchst du das nicht, du kannst eine Spalte immer über die Nummer referenzieren. Für ganze Spalten mit Columns(Spaltennummer) und für Einzelzellen mit
 Cells(Zeilennummer, Spaltennummer) 
.

wenn du tatsächlich mal den Spaltenbuchstaben brauchst (bspw für eine Hinweismeldung). dann lass dir das so von Excel ermitteln:
SpaltenBuchstabe = Split(Columns(Spaltennummer).Address(0, 0), ":")(0)
das Umrechnen ist sehr kompliziert, weil die Spaltenbeschriftung im Prinzip ein Zahlensystem ist, dem die 0 fehlt.
Gruß Daniel

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige