Seite 1 von 1

Cursorposition in Variable speichern

Verfasst: Do, 08.01.2004 14:01
von Loxlay
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 ?

Verfasst: Do, 08.01.2004 14:23
von openmind
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

Verfasst: Do, 08.01.2004 16:24
von Loxlay
Danke für deine schnelle Antwort, aber mein Problem ist damit immer noch nicht gelößt.
Ich möchte ja wissen, in welcher Zelle der Cursor gerade ist also ob er in A6 oder D4 oder B2 usw. ist.

Verfasst: Do, 08.01.2004 17:00
von Toxitom
Hallo Loxlay,

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
Das liefert dir den Index der aktuellen Zelle, aber denk dran: Indices beginnen bei 0!

Gruss
Thomas

Verfasst: Do, 08.01.2004 18:07
von openmind
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