Cursorposition in Variable speichern

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Loxlay
Beiträge: 4
Registriert: Mi, 07.01.2004 15:40

Cursorposition in Variable speichern

Beitrag 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 ?
openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag 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
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/
Loxlay
Beiträge: 4
Registriert: Mi, 07.01.2004 15:40

Beitrag 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.
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag 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
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/
Antworten