Hallo Zusammen,
ich möchter gerne in einem Makro für OO Calc immer in der Spalte "C" in der Zeile etwas eintragen, wo sich der Cursor gerade im im Sheet befindet.
Dabei kann der Cursor natürlich in einer beliebigen Spalte stehen, da mich hier nur die Zeile interessiert.
Dazu brauche ich irgendwie die Zeilenposition des Cursors, aber wie komme ich in meinem Makro an diese ?
Cursorposition in Variable speichern
Moderator: Moderatoren
Hinwiese siehe Code:
Code: Alles auswählen
Sub selektierteZellen
Dim calcDokument as Object
Dim selektion as Object
' aktuelles Dokument holen
calcDokument = ThisComponent
' aktuelle Selektion holen
selektion = calcDokument.getCurrentSelection()
' Selektion kann null(?), eine einzelne Zelle,
' ein einzelner oder mehrere Zellbereiche sein
If IsNull( selektion ) then
' keine Selektion (überhaupt möglich? wie?)
MsgBox "Keine Selektion"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCell" ) then
' einzelne Zelle selektiert
MsgBox "Einzelne Zelle selektiert"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCellRange" ) then
' einzelner Zellbereich selektiert
MsgBox "Einzelner Zellbereich selektiert"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCellRanges" ) then
' mehrere Zellbereiche selektiert
MsgBox "Mehrere Zellbereiche selektiert"
End If
End Sub
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Hallo Loxlay,
versuchs mit dem Code:
Das liefert dir den Index der aktuellen Zelle, aber denk dran: Indices beginnen bei 0!
Gruss
Thomas
versuchs mit dem Code:
Code: Alles auswählen
sub getCellPosition
oDoc=thisComponent
' aktive Zelle
oCelle=oDoc.getCurrentSelection().getCellAddress()
' aktives Tabellenblatt
oSheet=oDoc.sheets(oCelle.Sheet)
' aktuelle Zeile, Index
oRow=oCelle.Row
' aktuelle Spalte, Index
oColumn=oCelle.column
end sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
openmind hat geschrieben:Hinwiese siehe Code:
Code: Alles auswählen
Sub selektierteZellen Dim calcDokument as Object Dim selektion as Object calcDokument = ThisComponent selektion = calcDokument.getCurrentSelection() If selektion.supportsService( _ "com.sun.star.sheet.SheetCell" ) then ' !!!!!!! ' selektion = zelle ' !!!!!!!!!!!!!!!!!! selektion.Text = "ich bin hier" End If End Sub
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/