Seite 1 von 1

[GELÖST] Aufgrund Spaltennamens Position ermitteln

Verfasst: Mo, 20.09.2021 17:55
von Ralf R
Hallo zusammen!

Bei Michael Dannenhöfer findet sich ein Makro, mithilfe dessen man aus der Position einer Zelle heraus auf den Zellnamen kommt.
Ich habe Umgekehrtes vor. Das User ist aufgerufen einen Spaltennamen einzugeben und das Makro arbeitet mit der Positionsnummer weiter. Meine umständliche kreative Lösung sieht so aus:

Code: Alles auswählen

Sub Spaltenposition
osheet = ThisComponent.CurrentController.ActiveSheet
osheet = thisComponent.sheets.getByName(osheet.name)

eing = InputBox("Bitte geben Sie den Buchstaben der Spalte an (groß oder klein), mit der" & chr(13)_
& "weitergearbeitet werden soll! (Bei Nichteingabe wird der Vorgang beendet)!",, )

On Error GoTo Schluss:

oSpalte1 = oSheet.getColumns().getByName(eing)
cellname = eing + 5

oCell_1 = osheet.getCellRangeByName(cellname)
ThisComponent.currentController.select( oCell_1 )
oCell_1 = ThisComponent.getCurrentSelection().getCellAddress()
pos = oCell_1.Column

msgbox "Position: " & pos

Exit Sub 

Schluss:
msgbox "Sie haben keine gültige Spaltenbezeichnung gewählt. Der Vorgang wird abgebrochen."
End Sub
Die Frage ist: gibt es vielleicht auch einen direkten Weg um auf die Spaltenposition zu kommen – also ohne erst eine Zelle zu selektieren?

Danke vorab,
Ralf

Re: Aufgrund Spaltennamens Position ermitteln

Verfasst: Mo, 20.09.2021 18:52
von Karolus
Hallo

Code: Alles auswählen

Sub Spaltenposition

eing = InputBox("Bitte geben Sie den Buchstaben der Spalte an (groß oder klein), mit der" & chr(13)_
& "weitergearbeitet werden soll! (Bei Nichteingabe wird der Vorgang beendet)!",, )

On Error GoTo Schluss:
	msgbox "Position: " & ThisComponent.Sheets(0).getCellRangeByName(eing &1).CellAddress.Column
Exit Sub 

Schluss:
	msgbox "Sie haben keine gültige Spaltenbezeichnung gewählt. Der Vorgang wird abgebrochen."
End Sub

Re: Aufgrund Spaltennamens Position ermitteln

Verfasst: Mo, 20.09.2021 19:14
von Ralf R
Perfekt und Simpel.

Danke Karolus!