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

[Gelöst] Im Makro Stunden berechnen und ausgeben

CALC ist die Tabellenkalkulation, die Sie immer wollten.
mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von mikele » Di 10. Sep 2024, 20:47

Hallo,
ich will dir den Spaß auf keine Fall verderben ...
Anbei mal eine Variante, um fehlende oder falsche Eingaben abzufangen.
Die Schaltfläche ist zunächst erstmal deaktiviert. Bei jeder Eingabe (jedes Control) wir die Sub dauer aufgerufen, die nun zusätzlich alle Felder durchmustert, ob sie leer sind bzw. die Dauer Null oder negativ ist.
Dateianhänge
Fahrtenbuch2.ods
(28.99 KiB) 207-mal heruntergeladen
Gruß,
mikele

Benutzeravatar
Roland1
Beiträge: 82
Registriert: Sa 15. Jan 2022, 11:01

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von Roland1 » Mi 11. Sep 2024, 17:05

Danke, Mikele
du bist einfach klasse,

ich habs so umgeändert
for i=1 to 6
fehler=fehler+(odialog.getcontrol("ListBox1","Listbox2","Listbox3","Listbox5","Listbox6").selectedItem="")
next

Falls man die Bemerkung nicht braucht.

Kannst du mir eine Buch oder eine Seite für begriffsstutzige Makro Basic Programiereranfänger empfehlen.?
Gruß Roland
Windows 11, Libre 24,2,7,2

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

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von mikele » Mi 11. Sep 2024, 20:49

Hallo,
der Teil

Code: Alles auswählen

(odialog.getcontrol("ListBox1","Listbox2","Listbox3","Listbox5","Listbox6").selectedItem
funktioniert nicht so, wie du es wünschst.
Ich hätte vermutet, dass es einen Fehlermeldung produziert, denn mit der Methode .getControl kann man nur auf ein einzelnes Kontrollelement zugreifen. Offesichtlich wir aber alles hinter "ListBox1" gepflegt ignoriert, es wird also nur geprüft, ob in ListBox1 etwas gewählt wurde. Die Schleife ist in dem Syntax komplett überflüssig.
Wenn du nur einzelne Listboxen prüfen willst, dann eher so:

Code: Alles auswählen

fehler=fehler+(odialog.getcontrol("ListBox1").selectedItem="")
fehler=fehler+(odialog.getcontrol("ListBox2").selectedItem="")
fehler=fehler+(odialog.getcontrol("ListBox3").selectedItem="")
fehler=fehler+(odialog.getcontrol("ListBox5").selectedItem="")
fehler=fehler+(odialog.getcontrol("ListBox6").selectedItem="")
Ich war nur zu faul, diese Zeilen einzeln zu schreiben daher die Schleife (man könnte in ihr auch den Index 4 überspringen).
Oder man schreibt die gewünschten Indizes in ein Array und macht ein Schleife darüber:

Code: Alles auswählen

	box=Array(1,2,3,5,6)
	for i=0 to uBound(box) 
		fehler=fehler+(odialog.getcontrol("ListBox" & box(i)).selectedItem="")
	next
Angefangen habe ich mit den Codeschnipseln bei Michael Dannenhöfer https://www.dannenhoefer.de/faqstarbasic/index.html
Das Buch schlechthin zur Makroprogrammierung ist für mich "OpenOffice.org Macros explained" von Andrew Pitonyak in der deutschen Übersetung von Volker Lenhardt, gepflegt mittlerweile von Andreas Heier
https://makromador.wordpress.com/oome-o ... explained/
Diese und weiter Infos findest du hier https://de.openoffice.info/viewtopic.php?t=1553
Gruß,
mikele

Benutzeravatar
Roland1
Beiträge: 82
Registriert: Sa 15. Jan 2022, 11:01

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von Roland1 » Do 12. Sep 2024, 17:32

Hallo Mikele

Mit dem einzeln prüfen ist hast du mir wieder ein super codeschnipsel geschenkt.

Du zu Faul... niemals, nur schlau.

Das überspringen ist cool.
box=Array(1,2,3,5,6)
for i=0 to uBound(box)
fehler=fehler+(odialog.getcontrol("ListBox" & box(i)).selectedItem="")
next

Danke für die Webhilfe, da schau ich auf jedefall rein, ich hab ganz früher mim C64 einiges gemacht, aber das ist fast bisschen gleich nur aber fast ;-)
Zuletzt geändert von Roland1 am Sa 14. Sep 2024, 08:19, insgesamt 1-mal geändert.
Gruß Roland
Windows 11, Libre 24,2,7,2

minbari
Beiträge: 49
Registriert: So 25. Aug 2024, 17:35

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von minbari » Fr 13. Sep 2024, 18:00

Mir kommt die Tabelle irgendwie bekannt vor....

Benutzeravatar
Roland1
Beiträge: 82
Registriert: Sa 15. Jan 2022, 11:01

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von Roland1 » Sa 14. Sep 2024, 08:20

ja,

die habe ich mit deiner Hilfe aus dem Forum umgebastelt und ergänzt.

Quelle : viewtopic.php?f=6&t=40052
Gruß Roland
Windows 11, Libre 24,2,7,2

minbari
Beiträge: 49
Registriert: So 25. Aug 2024, 17:35

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von minbari » So 15. Sep 2024, 11:21

Roland1 hat geschrieben:
Sa 14. Sep 2024, 08:20
ja,

die habe ich mit deiner Hilfe aus dem Forum umgebastelt und ergänzt.
Das ist der Grund, warum ich so ungern Dateien hochlade, auch wenn dies oft für eine effektive Hilfe unumgänglich ist.

Benutzeravatar
Roland1
Beiträge: 82
Registriert: Sa 15. Jan 2022, 11:01

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von Roland1 » Mo 16. Sep 2024, 18:50

Hallo minbari,

ich benutze die Datei nicht, ich basteln nur dran rum.
Ich möchte dein geistiges Eigentum nicht vervielfältigen.
Aber ein Forum lebt vom geben und nehmen
Ich danke dir für so einen interessanten Ansatz, es tut mir leid wenn dir daran gelegen ist es nur für dich zu behalten. Das war nicht meine Absicht
Gruß Roland
Windows 11, Libre 24,2,7,2

minbari
Beiträge: 49
Registriert: So 25. Aug 2024, 17:35

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von minbari » Do 19. Sep 2024, 20:56

Alles gut. Mach was draus...

Benutzeravatar
Roland1
Beiträge: 82
Registriert: Sa 15. Jan 2022, 11:01

Re: [Gelöst] Im Makro Stunden berechnen und ausgeben

Beitrag von Roland1 » Fr 20. Sep 2024, 10:15

Danke minbar,

ich kann nur verändern, das Programieren verstehe ich irgendwie nicht.
Ich versuche noch ein freien Text einzubauen, schaff das leider nicht.
Dateianhänge
StundenTest.ods
(31.63 KiB) 150-mal heruntergeladen
Gruß Roland
Windows 11, Libre 24,2,7,2


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