🙏 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. 🤗

Steuerelemente werden nicht gespeichert

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Steuerelemente werden nicht gespeichert

Beitrag von Erika » Sa 17. Jun 2023, 12:46

Hi Wissende,

ich bin dabei, von MS-Office auf Libre Office 7.5. um zu steigen (u .a. wg. Linux auf einem alten Notebook, auf dem Windows nicht will) und bin an einem Problem hängen geblieben, für das ich keine Lösung finde. Die Suche hier brachte mich auch nicht weiter.

Es geht um eine MS-Exceltabelle, die per Makro nach 3 unterschiedlichen Kriterien sortiert werden kann. Die zugehörigen Markos habe ich umgeschrieben (stark vereinfacht) und sie werden von Calc auch sauber ausgeführt.

Diese Makros werden über 3 Steuerflächen aufgerufen. Wenn ich die Datei mit Calc öffne, funktioniert auch alles prima. Wenn ich die Datei speichere und wieder öffne, sind die Steuerflächen weg.

Also habe ich in Calc neue Steuerflächen angelegt und die VBA-Makros zugewiesen. Funktioniert prima. Aber sobald ich speichere und anschließend wieder öffne, sind die auch weg.

Sowohl bei Calc unter Windows 10 wie bei Calc unter linus Mint 21.1.

Kennt jemand das Problem? Und - noch besser - hat eine Lösung?

Grüße
Erika

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Steuerelemente werden nicht gespeichert

Beitrag von mikele » Sa 17. Jun 2023, 14:58

Hallo,
ich hoffe, du speicherst die Dateien als .ods ab.
Ansonsten wäre es hilfreich, wenn du uns eine solche Datei hier zur Verfügung stellst (es reicht ohne Daten, jedoch mit Makros).
Gruß,
mikele

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » Sa 17. Jun 2023, 15:28

Wenn ich als "ods" speichere, dann bleiben wohl die Schaltflächen erhalten, aber mit der Fehlermeldung

Ein Scripting Framework Fehler trat während der Ausführung vom Basic Skript vnd.sun.star.script:AMUTT.XLS.Modul9.SortAutotour?language=Basic&location=document auf.

Meldung: The following Basic script could not be found:
library: 'AMUTT'
module: 'XLS'
method: 'Modul9'
location: 'document'


In Modul 9 steht aber das kurze VBA-Script
Option VBASupport 1
Sub SortFlugreise()
Range("a2:F500").Sort Key1:=Range("f2"), Key1:=Range("f2"), Order1:=xlDescending, Key2:=Range("b2"), Key3:=Range("c2")
End Sub

welches sich aber nun nicht mehr - mit der gleichen Fehlermeldung - ausführen lässt. Zudem ist die Datei dann unter MS-Excel 2010 nicht mehr brauchbar und somit ist die Kompatibilität ohnehin nicht mehr gegeben.

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » Sa 17. Jun 2023, 17:49

Ich habe mich weiter belesen - das wird wohl nichts.

Ich werde auf die Schaltflächen verzichten (der Aufruf der Makros ist eher selten notwendig und dann geht es ja auch den umständlicheren Weg über den direkten Aufruf - das funktioniert ja).

Vielleicht arbeite ich mich mal in die Libre-Office-Makro-Welt ein. Noch stört mich das erforderliche Java.

Gruß
Erika

PS: Wer einen Trick kennt, die Schaltflächen im xlsm-Format zu erhalten - gern genommen.

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Steuerelemente werden nicht gespeichert

Beitrag von Wanderer » Sa 17. Jun 2023, 19:06

Wenn Du wissen willst, warum das mit dem Bearbeiten von VBA-Macrosbschwierig ist, schau Dir mal diese Einstellungen in der Hilfe zu LibreOffice an:
https://help.libreoffice.org/latest/de/ ... ystem=UNIX

Eigentlich braucht BASIC meines wissens nach kein Java. Ob der entsprechende Bug inzwischen behoben wurde weiß ich nicht, da ich wegen der HSQLDB Java immer installiert habe.

https://ask.libreoffice.org/t/what-feat ... e-java/256

Welches Problem hast Du mit Java? Sicherheit, Lizenz, Geschwindigkeit, anderes?
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » Sa 17. Jun 2023, 19:34

Danke für die HInweise.

Die Ausführung des VBA Kodes macht ja keinerlei Schwierigkeiten (nachdem ich den Kode vereinfacht habe, weil einige Statements dem LO zu kompliziert waren). Alle Häkchen sind bei den Optionen gesetzt. Und das Ganze geht ohne Java.

Nur die Schaltflächen und deren Verknüpfung mit den VBA-Makros funktioniert nach dem Speichern nicht, so dass die Makros manuell aufgerufen werden müssten (was geht).

Mit Java habe ich mich noch nicht im Detail beschäftig. Meine mich zu erinnern, in vergangenen Jahren einiges über Sicherheitsprobleme gelesen zu haben. Vielleicht mache ich mal ran. Dann ist es aber wohl mit der Rückwärtskompatibilität zu MS Office vorbei. Die wollte ich gern behalten.

Gruß
Erika

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » Sa 17. Jun 2023, 20:08

Update

Java installiert.

Mal probehalber per "Makro aufzeichnen" die Sortiersequenz als Makro erzeugt.
Schaltfläche angelegt und verknüpft - funktioniert.
Gespeichert als .xlsm..
Geöffnet und getestet: Schaltflächen funktionieren nicht.

Das Ganze noch einmal und als .ods gespeichert.
Geöffnet und getestet: Schaltflächen funktionieren.

Fazit: Unter Beibehaltung der Kompatibilität zu MS-Excel geht das wohl nicht.
Muss überlegen und beschließen, ob ich diese Kompatibilität noch brauche. Wahrscheinlich nicht.

Gruß Erika

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Steuerelemente werden nicht gespeichert

Beitrag von karolus » Sa 17. Jun 2023, 21:46

Erika hat geschrieben:
Sa 17. Jun 2023, 20:08
Update

Java installiert.
Java brauchst du definitiv nicht für Basic und VBA(-kompatibilität)***
Erika hat geschrieben:
Sa 17. Jun 2023, 20:08
Mal probehalber per "Makro aufzeichnen" die Sortiersequenz als Makro erzeugt.
Schaltfläche angelegt und verknüpft - funktioniert.
……
Das Ganze noch einmal und als .ods gespeichert.
Geöffnet und getestet: Schaltflächen funktionieren.

Fazit: Unter Beibehaltung der Kompatibilität zu MS-Excel geht das wohl nicht.
Muss überlegen und beschließen, ob ich diese Kompatibilität noch brauche. Wahrscheinlich nicht.
Wenn du eh zu Linux wechselst, dann sehe ich nicht wo du einen Export nach .xlsm benötigst??

***Java wird nur noch für (bestimmte?) Datenbanktreiber benötigt.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » So 18. Jun 2023, 07:42

Es ging ja nicht um die Funktion von VBA oder Basic. Beides machte ja keine Probleme.

Sondern nur um die Funktion der Schaltflächen nach dem Speichern.
Ich stecke da (noch) nicht genug drin, um die Zusammenhänge zu verstehen. Außer: Jetzt geht es. Vorher ging es halt nicht.

Nicht alle verwenden LO - daher die Betrachtung der Kompatibilität zu MO.

Erika
Beiträge: 7
Registriert: Sa 17. Jun 2023, 12:32

Re: Steuerelemente werden nicht gespeichert

Beitrag von Erika » So 18. Jun 2023, 13:50

Weiteres Update

Nachdem ich mit der Funktion der Tabelle inkl. Makros und Schaltflächen auf dem PC nun rundum glücklich bin, habe ich die Datei auf dem Notebook unter Linux geöffnet (der Hauptzweck der Übung).

Die Makros werden nicht geladen. Es erscheint eine Meldung, dass nicht alle Daten geladen werden können, weil die Spaltenzahl zu hoch sei. Wohl ein Relikt aus Excel. Ich habe alle genutzten Spalten in neue Arbeitsblätter kopiert und die ursprünglichen gelöscht. Die Meldung erscheint nicht mehr, aber die Makros werden trotzdem nicht geladen.

Makro-Sicherheitsansprüche sind auf "niedrig" gesetzt und bei den VBA.Makros (sind ja aber gar keine, sondern Starbasic) alle Häkchen gesetzt.

Gelernt: Es ist zu unterscheiden, ob im Programm oder im Dokument zu speichern. Am besten nur die Daten in eine frische Tabelle kopieren, damit da gar nichts Verwirrendes von Excel übernommen wird.

Jetzt alles soweit perfekt.

Noch nicht gelungen ist es mir, ein Basic- Äquivalent für die Excelanweisung ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row zu finden, um auch den Druckbereich bis zum letzten Eintrag fest zu legen.

EDIT
Trotz intensiver Suche im Netz habe ich nichts Vernünftiges gefunden. Also FOR-NEXT-Schleife über die entsprechende Spalte mit EXIT FOR, wenn die erste leere Zelle angetroffen wird. Funktioniert prima und es sind nicht so viele Daten, dass die Laufzeit eine Rolle spielt.

Projekt erfolgreich abgeschlossen, auch wenn es sicher elegantere Lösungen gibt. Danke für die hervorragende Unterstützung und LG

Erika


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