🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Sub Sprung_Spalte? CALC

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
mathiu9
Beiträge: 6
Registriert: Fr 24. Jan 2020, 14:56

Sub Sprung_Spalte? CALC

Beitrag von mathiu9 » Do 15. Dez 2022, 18:08

Hallo, wie schreibt man ein Makro dass beim Verlassen einer Seite der Fokus
immer wieder auf die Zelle A12 der jeweiligen Seite positioniert?

Ich habe es mit dem versucht und bin dran gescheitert :?
Sub Sprung_Spalte_CG()
Cells(ActiveCell.Row, Columns("CG").Column).Select
End Sub

DavidG
Beiträge: 195
Registriert: Do 22. Mär 2018, 21:41

Re: Sub Sprung_Spalte? CALC

Beitrag von DavidG » Sa 17. Dez 2022, 18:29

Hallo,


mathiu9 hat geschrieben:Ich habe es mit dem versucht und bin dran gescheitert
Ja, Du hast die Objektvariable oCell nicht referenziert.
Woher soll der arme Basic-Interpreter wissen was Du mit oCell meinst. Ausserdem muss der „Steuerungsmechanismus“ referenziert werden, damit eine Select-Anweisung umgesetzt wird.

Hierachische Liste der Objekte:
  1. Stardesktop (Nur in Ausnahmefällen erforderlich. Muss also nicht referenziert werden)
  2. ThisComponent
    • ThisComponent.CurrentController → z.B. Steuerung des Cursors
    • ThisComponent.Sheets → Alle Tabellenblätter innerhalb von ThisComponent
      • .../Sheet(0) → Das erste Tabellenblatt
      • .../Cell(…) → Die referenzierte Zelle

Als Code sieht dies dann so aus:

Code: Alles auswählen

REM  *****  BASIC  *****
Option Explicit

Sub Main
REM -------------------------------------------
REM Deklaration der Variablen:
Dim oDoc as Object		' Objektvariable	→ vordergründiges Dokument
Dim oCC as Object		' Objektvariable	→ CurrentController (z.B. Steuerung des Cursors)
Dim oSheet as Object	' Objektvariable	→ das gewünschte Sheet
Dim oCell as Object		' Objektvariable	→ die gewünschte Zelle
REM -------------------------------------------

REM -------------------------------------------
	' Referenzierung der Objekte
	oDoc= ThisComponent
		oSheet=oDoc.Sheets().getByIndex(0)
			oCC=oDoc.CurrentController
'xray osheet

REM -------------------------------------------
REM XRAY sagt bei Methode:
'	getCellByPosition	(nColumn as long, nRow as long)	AS com.sun.star.table.XCell

' Die Zählung der Spalten und Zeilen beginnt bei 0, so ist:
' oSheet.getCellByPosition(0,0) = A1
' oSheet.getCellByPosition(1,1) = B2
				' oCell=oSheet.getCellByPosition(nColumn,nRow)
				oCell=oSheet.getCellByPosition(1,1)
'xray oCell
'xray occ
REM -------------------------------------------
' Cursor auf referenzierte Zelle positionieren
	oCC.select(oCell)							
End Sub
Beachte bitte diese Seite:
DE/Makro Basic Tutorial
Auf derselben Seite kannst Du Dir das Codeinspektionstool XRAY herunterladen:
Xray-Tool

und

LibreOffice-API
Gruß

David
___________________
WIN 10 PRO
LO 7.4.5.1 (x64)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten