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] Daten Reset - geht so etwas und wenn ja, wie?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Benutzeravatar
Olaf A
Beiträge: 22
Registriert: Sa 26. Sep 2020, 02:43

[gelöst] Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von Olaf A » So 11. Okt 2020, 03:06

Folgender Sachvehalt. Ich habe eine Calc Tabelle gemacht, welche Daten erfassen soll, welche sich alle 24 Stunden erneuern.

Es geht hier um ein Internetspiel (Athletics Mania), wo man 12 Leichtathletik Disziplinen absolviert. Hier gibt es die verschiedensten Wettbewerbe. Da z.Zt. noch nicht alle Disziplinen zur Verfügung stehen, ist es derzeit ein Siebenkampf.

Bild

Wie man im Bild sieht, habe ich die möglichen Eingabefelder grau hinterlegt. Alle anderen Zellen sind gesperrt. Die Formeln für die Berechnung und 10 von 12 Werten zur Berechnung der Punkte der einzelnen Disziplinen habe ich im Internet gefunden, beim Hammerwerfen und Dreisprung mußte mir der Spielehersteller aushelfen, was er gern tat.

Die Eingabe der Werte erfolgt per Listenauswahl oder Tastatureingabe. In den Spalten F und R lasse ich immer die eingegebenen Werte als Ergebnis erscheinen, worauf dann die Punkte berechnet werden (Spalte G und S - erscheinen dort mit zwei Dezimalstellen und wird ausgeblendet). Der Grund, warum ich hier nicht schon VRUNDEN benutze ist, dass bei der komplexen Formel jeder Versuch zu falschen Ergebnissen führte, daher dieser Weg. Zur Überprüfung meiner Ergebnisse hatte ich mir ein paar Punktetabellen der IAAF angeschaut und dadurch bin ich auch darauf gekommen, dass man erst das finale Ergebnis runden sollte.

Die Werte die ich so berechne, die stimmen zu 100% mit denen beim Spielehersteller überein. Anmerkung: Die Konstanten zu den Formeln habe ich in einer versteckten Tabelle hinterlegt. Es ist auch noch ein "Rückwärtsrechner" integriert, (Punkte - Disziplinwerte Rechner), dessen Werte aus Tabellenbereichen entnommen werden. Da die Formeln zu komplex sind, habe ich mich nur so zu helfen gewußt, daß ich Zahlenfolgen erstellt habe und Hand dieser für jede Diszipline eine Punktetabelle erstellt habe. Auch das funktioniert zuverlässig und ohne Fehler.

Formeln und Konstanten (PDF Datei)

Was ich jetzt möchte, ist sowas wie ein Reset Button, der alle "Grauen Zellen" auf 0 setzt. Ist sowas möglich und wenn ja, wie?

Eine erste Version des Rechners (von September) habe ich auf meinen Webspace gespeichert. Da findet man noch die Punktetabellen als LO Calc Datei, welche im Ordner PDF (eine Ebene höher und Ordner PDF auswählen) für jede Disziplin in eben solcher Form vorliegen.
Zuletzt geändert von Olaf A am Mi 28. Okt 2020, 12:26, insgesamt 2-mal geändert.
MfG Olaf

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von craig » Mi 14. Okt 2020, 15:28

Hallo Olaf,

in Deinem Fall gibt es aus meiner Sicht zwei Methoden:
  1. Methode 1
    Erstelle eine Dokumentvorlage auf Basis Deines formatierten und Formeln bestückten Dokuments.
    Nulle alle gewünschten Zellen.
  2. Methode 2
    Reset mittels Makro
Ich rate Dir zur Methode 1, weil Du täglich ein neues Dokument beginnst.
Leider gibt es für Calc derzeit keine konkrete Anleitung zur Erstellung einer Dokumentvorlage.
Im Calc-Gesamtband wird zwar kurz darauf eingegangen, aber die Writer-Doku ist ausführlicher.

In der Office-Doku gibt es eine Videoanleitung und Handbücher, wie eine Vorlage unter Writer erstellt wird.
Im Prinzip funktioniert dies genauso unter Calc.

Ist die Dokumentvorlage erstellt, dann öffne diese.
Office erstellt dann ein neues Dokument, auf Basis der
Dokumentvorlage und alle von Dir definierten Zellen stehen auf NULL.

Office-Handbücher → https://de.libreoffice.org/get-help/documentation/

Videoanleitungen → https://de.libreoffice.org/get-help/neue-seite-2/
Videoanleitungen → speziell Writer →
https://de.libreoffice.org/get-help/neu ... ngenwriter
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Benutzeravatar
Olaf A
Beiträge: 22
Registriert: Sa 26. Sep 2020, 02:43

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von Olaf A » So 18. Okt 2020, 02:12

Vielen Dank für deine ausführliche Antwort. Ich werde das mit der Dokumentenvorlage ausprobieren. Allerdings soll die Tabelle dauerhaft sein und sie wird auch nicht tagtäglich neu erstellt. Die Berechnungen die in der Spalte G vorgenommen werden (Wert von Spalte F dient als Grundwert und dieser wird aus den Spalten c bis E berechnet) sind etwas komplex und erscheinen dann in gerundeter Form in Spalte H (vrunden).

Notfalls werde ich also doch auf Makros zurück greifen müssen. Wie erstelle ich zu diesen Makro dann einen Button?
MfG Olaf

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von craig » So 18. Okt 2020, 22:24

Hallo Olaf,
Olaf hat geschrieben:Notfalls werde ich also doch auf Makros zurück greifen müssen.
Hier ein Muster mit Makro:
Zellbereich_Inhalt_löschen.ods
(9.69 KiB) 126-mal heruntergeladen
Olaf hat geschrieben:Wie erstelle ich zu diesen Makro dann einen Button?
Hier eine Beschreibung dem Button ein Makro zuweisen.
Makro Schaltfläche.ods
Mit einem Test-Makro
(144.94 KiB) 100-mal heruntergeladen
Statt ener Schaltfläche (Button) kannst Du Makros auch mit
  • einem Menüeintrag in der Menüleiste
  • einem Symbol in einer Symbolleiste
  • einem Menüeintrag im Kontextmenü
  • oder per Tastenkombination
verknüpfen.
Dieses kannst Du für das aktuelle Dokument festlegen oder global für Calc.
Menü Extras → Anpassen...
Weitere Infos: "Anpassen" den Hilfe-Button betätigen.
oder:
https://www.youtube.com/results?search_ ... e+anpassen
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Benutzeravatar
Olaf A
Beiträge: 22
Registriert: Sa 26. Sep 2020, 02:43

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von Olaf A » Di 20. Okt 2020, 05:23

Vielen Dank für deine Hilfe. Ich habe ein Problem mit deiner Tabelle Zellbereich_Inhalt_löschen.ods, denn wenn ich auf den Button klicke, passiert nichts. Das mit dem Button habe ich soweit hinbekommen. Das Problem vor dem ich stehe ist, dass ich diese Tabelle auch für andere bereit stellen möchte. Daher soll es auch eine Version geben, welche Excel kompatibel ist.

Makros habe ich erstellt. Hierbei habe ich die Daten immer in 0 geändert. Egal was ich tat, das Makro machte nie was es sollte. Dann habe ich statt die Daten in 0 zu ändern die Entfernen Taste betätigt, das so erstellte Makro entfernte wirklich die Werte und die Auswahllisten blieben erhalten.

Allerdings produziert die Tabelle in den Spalten rechts davon jetzt ein #NV. Grund hierfür ist, dass ich zwar die Spalten C bzw. D überprüfe und hier Fehler abfange, da aber in Spalte E Werte von 0-99 erlaubt sind erfolgt hier keine Prüfung. Wenn aber gar kein Wert vorhanden ist, ich aber bei C/D einen Wert eingebe, dann erkennt Calc Fehler in der Rechnung, weil in Spalte E eben kein Wert ist und quitiert mir das mit der Fehlermeldung #NV

Ich weiß nicht, ob du vielleicht eine Lösung hast, ich stelle dir die Tabelle und Anleitung mal zum Download bereit.

Tabelle: Athletics Mania Rechner (Demo).ods 2.270.602 Byte
Anleitung: Athletics Mania Rechner - Anleitung.odt 920.290 Byte

Das Passwort und den Link für die Dateien sende ich dir per PN.

Vielen Dank für deine Mühen.
MfG Olaf

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von craig » Di 20. Okt 2020, 17:46

Hallo Olaf,
Olaf hat geschrieben:Vielen Dank für deine Hilfe.
Gern geschehen.
Olaf hat geschrieben:Ich habe ein Problem mit deiner Tabelle Zellbereich_Inhalt_löschen.ods, denn wenn ich auf den Button klicke, passiert nichts.
Gründe:
  1. Die Makrosicherheit ist auf HOCH eingestellt.
    Wenn Du in diesem Modus ein Dokument mit Makros öffnest, werden die Makros automatisch deaktiviert.
    Es sei denn, Du hast in den Einstellungen für die hohe Makrosicherheit einen vertrauswürdigen Ordner
    definiert und/ oder ein Sicherheitszertifikat festgelegt.
    • Menü Extras → Optionen...
    • LibreOffice → Sicherheit
    • Button "Makrosicherheit"
    • Es öffnet sich das Fenster "Makrosicherheit"
    • Register "Sicherheitslevel"
      Die verschiedenen Level veranlassen LibreOffice zu verschiedenen Aktion.
      Ist dort beschrieben.
    • Empfohlen wird Sicherheitslevel = HOCH
      • In diesem Fall musst Du unbedingt Dein Dokument in einem vertrauenswürdigen Ordner speichern
        und LibreOffice unter Register "Vertrauenwürdige Quellen" diesen Speicherort mitteilen.
        Du kannst auch Zertifikate verwenden, hiermit habe ich allerdings keinerlei Erfahrung.
        Ich weiß nur, dass es kostenpflichtige und freie Sicherheitszertifikate gibt.
        Suche im Netz nach:
        Libreoffice Makro Zertifikate
  2. wählst Du die Option Level = MITTEL,
    dann wirst Du jedesmal beim Öffnen des Dokuments gefragt, ob "Makros aktiviert" werden sollen.
  3. Beachte meine HInweise im hochgeladenen Dokument:
    Makro Schaltfläche.ods
    Dort habe ich beschrieben, dass der Entwurfsmodus ausgeschaltet sein muss, damit ein Button funktioniert.
Olaf hat geschrieben: Das mit dem Button habe ich soweit hinbekommen. Das Problem vor dem ich stehe ist, dass ich diese Tabelle auch für andere bereit stellen möchte. Daher soll es auch eine Version geben, welche Excel kompatibel ist.
  1. Excel und Calc sind nicht 100%-kompatibel.
    Die Foren sind voll von Hilferufen "Mein Dokument ist Schrott, was kann ich tun", usw.
    Die Ursache kann ein wechselseitiges Speichern von Excel nach Calc und umgekehrt sein.
    Die Dateien (Excel/ Calc) basieren zwar auf dem ODF-Standard, allerdings nicht zu 100% und genau dies führt zu Inkompatibilitäten.

    Auf jeden Fall sind hier Sicherungskopien unbedingt erforderlich :!:
    Installiere Dir diese Extension:
    Timestamp Backup
    • Die Arbeitsweise sähe z.B. so aus.
    • Du bearbeitest Dein Dokument und speicherst ganz normal über Tastenkombi, das Menü oder Symbol.
    • Nach der Installation gibt es zusätzlich eine Option in
      Menü Datei → "Speichern, auch als BackUp mit Zeitstempel
      Diese Sicherungskopie, inklusive Datum- und Zeitstempel befindet sich dann im Backup-Ordner des Benutzerrprofil.
      Siehe auch Beschreibung auf der verlinkten Website.
      Auf diese Weise kannst Du eine ganze Serie von Backup's mit unterschiedlichen Bearbeitungszuständen speichern.
      Sollte mal ein Datencrash erfolgen, dann hast Du zumindest nur einen kleinen Teil Deiner Arbeit verloren.
  2. Eine weitere Problematik sind Makros.
    • Excel arbeitet mit VBA-Makros
    • Calc mit Starbasic-Makros
    Beides sind erweiterte Basic-Derivate, die Standards sind aber gänzlich verschieden.
    • Ein Starbasic-Makro kannst nicht unter Excel laufen lassen.
    • Ein VBA-Makro kannst nur bedingt unter Calc laufen lassen.

      Damit die Basic-IDE von LibreOffice angewiesen wird ein VBA-Makro auszuführen muss
      in das jeweilige Makromodul in oberster Zeile folgende Anweisung stehen:

      Code: Alles auswählen

      Option VBASupport 1
      Siehe auch hier: https://help.libreoffice.org/latest/de/ ... 03350.html
      Problematik:
      Der Basic-IDE-Interpreter versteht zwar einige VBA-Anweisungen, ist aber auch nicht zu 100% kompatibel.
      Das heißt ein VBA-Code muss so geschrieben werden, dass der Interpreter ihn korrekt ausführt.
      Erschwerend kommt hinzu, dass ältere Libreoffice Versionen/ Releases den VBA-Code u.U. nicht richtig umsetzen.
      Gleiches gilt für Openoffice.
Ich denke jetzt stehst Du vor einem Dilemma.
Excel oder Calc oder zweigleisig fahren:?:
Olaf hat geschrieben:Makros habe ich erstellt.
Mit dem Makrorekorder oder mittels Starbasic-Programmierung auf Basis der API. :?:
Olaf hat geschrieben:Hierbei habe ich die Daten immer in 0 geändert. Egal was ich tat, das Makro machte nie was es sollte.
In Deinen Beipsieldateien habe ich gesehen, dass Du Auswahllisten in den Zellen benutzt.
Im ersten Screenshot war dies nicht eindeutig zu sehen.
Bei der Starbasic-Programmierung muss man auf die Objekte zugreifen, um auf deren Eigenschaften, Methoden, Interfaces und Services zuzugreifen.
In Meinem Beispielprogramm greife ich auf einen zusammenhängenden Zellbereich zu.
So kann ich dann im Code auf Eigenschaften, Methoden, Interfaces und Services, usw. ddes Zellbereichs zugreifen.
Damit dies funktioniert verwende ich Zeiger (Objektvariable), welche auf die einzelnen
Objekte verweisen und auf diese Weise Zugriff auf zuvor beschriebenes erlauben.

Code: Alles auswählen

REM Objektvariable deklarieren
DIM oDoc as Object
	' Referenz/ Zeiger auf das aktuelle Dokument setzen
	oDoc=ThisComponent
Die Objektvariable "oDoc" ist der Zeiger, welcher auf "ThisComponent" zeigt.
Damit "beinhaltet" die Variable "oDoc" alle Eigenschaften, Methoden, Interfaces und Services, usw.
Das Ganze ist hierachisch aufgebaut.
"ThisComponent" steht für das aktuelle Dokument.
Das aktuelle Dokument besteht aus Tabllenblättern:

Code: Alles auswählen

REM Objektvariablen
DIM oDoc as Object
Dim oSheet1 as Object
	oDoc=ThisComponent
	
	oSheet1=oDoc.Sheets().getByIndex(0)

Code: Alles auswählen

oDoc.Sheets()
bedeutet: Hallo Interpreter ich will Tabellenblätter

Code: Alles auswählen

oSheet1=oDoc.Sheets().getByIndex(0)
Ich will aber nicht alle Tabellenblätter, sondern nur das erste Tabellenblatt (Index = 0)
ODER so:

Code: Alles auswählen

oSheet1=oDoc.Sheets().getByName("Tabelle1")
Ich denke es ist hiermit klar geworden, das man von einer höheren Objektebene
sich per Code in eine tiefer Ebene bewegen kann; Vom Prinzip her eine Pfadangabe
Dokument\Tabellenblätter\"Tabelle1"
Dokument\Tabellenblätter\"Tabelle1"\Zelle
oder
Dokument\Tabellenblätter\"Tabelle1"\Zellbereiche

Warum der Code nicht korrekt funktioniert?
Ich vermute, dass Du nicht auf die Auswahllisten zugreifst.
Eine Auswahlliste ist das untergeordnete Objekt einer Zelle (nicht eines Zellbereichs :!: )
Zelle("D4").Validation

An dieser Stelle stehe ich vor einem Problem :?

Mein Problem ist:
Bei einem DropDown-Steuerelement kann man auf die einzelnen Einträge per Index zugreifen.
Damit läßt sich der Cursor steuern, in etwa so:

Code: Alles auswählen

DropDown1.selectItemIndex(0)
Damit wird der Cursor an die erste Position aller Einträge gesetzt.
In Deinem Fall wäre es z.B. "00" oder "0"
Eine Auswahlliste ist jedoch kein Dropdown-Menü.
Der Zugriff erfolgt mit:

Code: Alles auswählen

oVal=oZelle.Validation
Das Objekt "oVal" besitzt keine Methode um den Cursor zu
steuern, zumindest habe ich keine unmittelbare Methode gefunden.
Es kann sein, dass man einen Service laden muss, damit man den Cursor in der Auswahlliste steuern kann.
Ich weiß im Augenblick noch nicht wie ich dies bewerkstelligen soll.

FAZIT:
Es nutzt also nichts den Zellinhalt zu löschen oder auf NULL zu setzen, sondern man muss die Auswahlliste steuern.

Ich werde versuche eine Methode zu finden. Kann Dir aber nichts versprechen.

Ggf. gibt es noch einen interessierten Leser/ Helfer der sich mit der Programmierung von Auswahllisten auskennt.
Zuletzt geändert von craig am Fr 23. Okt 2020, 22:06, insgesamt 1-mal geändert.
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Benutzeravatar
Olaf A
Beiträge: 22
Registriert: Sa 26. Sep 2020, 02:43

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von Olaf A » Mi 21. Okt 2020, 01:54

Nochmals vielen Dank Graig. Bisher hatte ich Libre Office zwar schon mit Freude benutzt und dachte eigentlich, daß ich damit gut zurecht komme, e tiefer man sich aber hineinarbeitet, desto mehr erkennt man die eigenen Wissenslücken.

Zum Glück gibt es dieses Forum und Leute wie dich, die einen helfen.

Deinen Ratschlag bezüglich der Makroeinstellungen habe ich befolgt und mein Office entsprechend angepaßt. Es war tatsächlich hoch eingestellt, aber ich wurde beim Öffnen deiner Datei auch gefragt, ob ich das Makro ausführen möchte. Es tat sich trotzdem nicht und ich schaute dann unter den Makros nach, wo alles leer war. Immerhin, jetzt geht dein Makro.

Dadurch ist mir aber auch eines klar geworden, ich müßte in meiner Anleitung ein Kapitel für Libre Office bzw. auch Open Office hinzufügen, wo ich den Umgang mit Makros erkläre.

Das die Makros zu Excel nicht ganz kompatibel sind, dachte ich mir schon. Bei meinen eigenen Makros hatte ich es nach dem Erstellen vorgezogen, diese manuell im Quelltext zu bearbeiten. Basic, da werden Erinnerungen wach. C128D, Basic 7.0, CP/M - das hat Spaß gemacht. Naja, genug jetzt der Nostalgie hinterher getrauert, wir haben 2020.

Eine Frage bleibt mir jetzt noch. Wie kann man die Größe eines Tabellenblattes begrenzen? Nimm meine Tabelle "Persönliche Bestleistungen, die würde ich gern auf die Größe A1:T26 begrenzen. Gibt es einen solchen Befehl?
MfG Olaf

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Daten Reset - geht so etwas und wenn ja, wie?

Beitrag von craig » Sa 24. Okt 2020, 21:17

Hallo Olaf,

ist meine PN angekommen?
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

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