BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] in geöffneter Tabelle das Blatt wechseln wie?

Alles zur Programmierung im LibreOffice.
wega
Beiträge: 121
Registriert: Mi 16. Jul 2014, 19:15

Re: in geöffneter Tabelle das Blatt wechseln wie?

Beitrag von wega » Fr 16. Sep 2022, 23:44

Hallo wanderer,

ich versuche einmal Deine Fragen zu beantworten.

a) sicher, wenn alle Stricke reißen wird man sich wieder an das Flußdiagramm
erinnern. Das liegt mir auch noch vor.

b) Sicher kann Libreoffice BASIC auch GOTO-Anweisungen. Nur mit "goto Labelxxx"
und "Labelxxx:" wird so ein Programm nicht übersichtlicher.

c) das Libreoffice BASIC mit CALC-Tabellen eventuell ein Problem hat, istmir vorher
auch nie so aufgefallen.

d) Ich habe mir mit dem Writer eine Bildschirmseite geschaffen, auf der ich die verschiedensten
Programme aufgelistet und mit einem Auswahlbutton versehen habe.
Mit diesen Button rufe ich dann das gewünschte Programm auf, über dessen Dialog ich dann
die benötigten Programmparameter eingebe. Die Ergebnisse der Berechnug(en) gebe ich dann
wenn nicht über "msgbox" dann über eine CALC-DAtei aus, wobei mir dann auch wenn nötig
bzw erforderlich auch ein Diagramm zu den Berechnungen ausgegeben wird.

Also, mein Programm kommt nicht aus der CALC-Datei sondern steuert eine CALC-Datei.
Und bei dieser Vorgehensweise ist mir die Ungereimtheit (oder meine Unkenntnis) mit der
CALC-Datei aufgefallen.

Ich hoffe, ich habe es verständlich erklärt.

Mit Gruß
Werner

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: in geöffneter Tabelle das Blatt wechseln wie?

Beitrag von Wanderer » Sa 17. Sep 2022, 16:33

Unter den Umständen würde ich rrstmal sicherstellen, dass ich das richtige Dokument befrage. Es könnte z.B sein, dass Du die aufrufende Writerdatei nach einem weitern Sheet befragst.

An dieser Stelle empfiehlt meist einer der Foristen die Nutzung von MRI oder XRAY - in diesem Fall im Herauszufinden, wohin Dien Objekt zeigt und in welchem Dokument Du dich gerade bewegst....

J.
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: in geöffneter Tabelle das Blatt wechseln wie?

Beitrag von F3K Total » Sa 17. Sep 2022, 18:09

Hallo Werner,
wega hat geschrieben:
Fr 16. Sep 2022, 23:44
c) das Libreoffice BASIC mit CALC-Tabellen eventuell ein Problem hat, istmir vorher
auch nie so aufgefallen
Dies kann ich in keiner Weise bestätigen, man kann ein Calc Dokument hervorragend mit Basic bearbeiten!
Deine Frage zu verstehen, ist schwierig, was meinst du mit in geöffneter Tabelle das Blatt wechseln wie?
Wenn ich dich richtig verstanden habe, möchtest du schlicht auf Tabellenblatt 1 etwas auslesen und in Tabellenblatt 2 eintragen.
Das ist einfach, hier ein Beispielcode:

Code: Alles auswählen

Sub Copy_Value
    oTabellen = ThisComponent.Sheets

    oQuelltabelle = oTabellen.getbyindex(0)' oder oQuelltabelle = oTabellen(0) oder oTabellen.getbyName("Tabelle1") wenn deine erste Tabelle "Tabelle1" heißt
    oZieltabelle = oTabellen.getbyindex(1)' oder oQuelltabelle = oTabellen(1) oder oTabellen.getbyName("Ausgabe")wenn deine zweite Tabelle "Ausgabe" heißt

    oQuellzelle = oQuelltabelle.getcellbyposition(0,1) 'oder  oQuelltabelle.getcellRangebyName("A2")
    oZielzelle = oZieltabelle.getcellbyposition(0,1) 'oder  oZieltabelle.getcellRangebyName("A2")

    dValue = oQuellzelle.Value ' wenn die Zelle eine Zahl enthält
    msgbox  "Der Wert in Zelle A2 ist: " & dValue
    'sText = oQuellzelle.String ' wenn die Zelle einen Text enthält
    'sFormula = oQuellzelle.Formula ' wenn die Zelle eine Formel enthält, liest man sie auf diese Weise aus
    oZielzelle.Value = dValue
    'oZielzelle.String = sText
    msgbox "Wert auf Tabelle Ausgabe in Zelle A2 eingetragen"
End Sub
Wenn du dabei das jeweilige Tabellenblatt sehen möchtest, kannst du dies mit dem CurrentController steuern.
Ein zweiter Beispielcode:

Code: Alles auswählen

Sub Copy_Value2
    oController = ThisComponent.CurrentController ' hiermit kann man die Ansichten steuern, dies hat nichts mit dem Zugriff auf die Zellen zu tun

    oTabellen = ThisComponent.Sheets

    oQuelltabelle = oTabellen.getbyindex(0)' oder oQuelltabelle = oTabellen(0) oder oTabellen.getbyName("Tabelle1")
    oZieltabelle = oTabellen.getbyindex(1)' oder oQuelltabelle = oTabellen(1) oder oTabellen.getbyName("Ausgabe")
    'auf Tabelle Ausgabe springen
    oController.activeSheet = oZieltabelle
    msgbox "Aktuelle aktiv : Tabelle Ausgabe, siehe Reiter unten"
    'auf Tabelle1 wechseln
    oController.activeSheet = oQuelltabelle
    msgbox "Auf Tabelle 1 gesprungen, siehe Reiter unten"

    oQuellzelle = oQuelltabelle.getcellbyposition(0,1) 'oder  oQuelltabelle.getcellRangebyName("A2")
    oZielzelle = oZieltabelle.getcellbyposition(0,1) 'oder  oZieltabelle.getcellRangebyName("A2")

    dValue = oQuellzelle.Value ' wenn die Zelle eine Zahl enthält
    msgbox  "Der Wert in Zelle A2 ist: " & dValue
    'sText = oQuellzelle.String ' wenn die Zelle einen Text enthält
    'sFormula = oQuellzelle.Formula ' wenn die Zelle eine Formel enthält liest man sie auf diese Weise aus
    'wieder auf Tabelle Ausgabe springen
    oController.activeSheet = oZieltabelle 
    msgbox "Auf Tabelle Ausgabe gesprungen"
    'Zielzelle für 1 Sekunde rot färben
    oZielzelle.CellBackColor =RGB(255,0,0)
    wait 1000
    oZielzelle.CellBackColor = -1
    oZielzelle.Value = dValue
    'oZielzelle.String = sText
    msgbox "Wert eingetragen"
End Sub
Diese beiden Codes funktionieren dann, wenn du eine Calc Datei mit mindestens zwei Tabellenblättern hast.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

wega
Beiträge: 121
Registriert: Mi 16. Jul 2014, 19:15

Re: in geöffneter Tabelle das Blatt wechseln wie?

Beitrag von wega » Di 20. Sep 2022, 12:42

Hallo R,

vielen Dank für Deine Mühen.
Ja, genau das war es, -> Aus einem Tabellenblatt auslesen, rechnen lassen
und das Ergebnis in ein Folgeblatt hineinschreiben.

Deine Code-Sequenzen helfen mir sehr, mich in die Makro-Programmierung
einzuarbeiten.

Nochmals vielen Dank.

Mit Gruß
Werner

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: [gelöst] in geöffneter Tabelle das Blatt wechseln wie?

Beitrag von F3K Total » Di 20. Sep 2022, 15:56

Moin,
wie Wanderer bereits oben geschrieben hat:
Wanderer hat geschrieben:
Sa 17. Sep 2022, 16:33
An dieser Stelle empfiehlt meist einer der Foristen die Nutzung von MRI oder XRAY - in diesem Fall im Herauszufinden, wohin Dein Objekt zeigt und in welchem Dokument Du dich gerade bewegst....
Eines der beiden zu nutzen empfehle auch ich dir.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten