Seite 1 von 1

Hilfe kompliziertes Makro erstellen

Verfasst: Do 4. Feb 2021, 08:28
von KatjaBauer
Ich brauch Hilfe für ein sehr kompliziertes Makro. Ich bin leider Einsteiger in diesem Thema und kann es leider nicht ohne Hilfe selbt programmieren, vielleicht kann mir ja hier jemand helfen und mir sagen, wie ich da ran gehen soll oder mir sogar ein Makro zu schicken. Das soll das Makro machen:

Ich muss in Calc das Spiel "Wer wird Millionär" erstellen. Es gibt eine "Weiter" Schaltfläche, die bei Betätigen Zelle A1 um 1 erhöht und die Zellen A6, A7, B6, B7 leert. In diesen 4 Zellen ist ein Dropbox-Menü, um die Antworten anzukreuzen. Die Zelle A1 gibt die Fragenummer an, bei Betätigen der "Weiter" Schaltfläche wir also zur nächsten Frage gesprungen und die angekreuzten Antworten wieder gelöscht. Ich habe auch schon geschafft, dass Angezeigt wird, ob die Antwort richtig war. Dazu habe ich zunächst eine Formel in die Zelle D9 geschrieben, die immer angibt, ob Antwort A,B,C oder D richtig ist, also ein Kreuz in Zelle A6, A7, B6, B7, abhängig von der Fragenummer in A1. Die Formel in D9 lautet:

=WENN(ODER(A6="X";B6="X";A7="X";B7="X");WENN(A1=1;"A";WENN(A1=2;"B";WENN(A1=3;"C";WENN(A1=4;"D";WENN(A1=5;"A";WENN(A1=6;"B";WENN(A1=7;"C";WENN(A1=8;"D";WENN(A1=9;"A";WENN(A1=10;"B";WENN(A1=11;"C";WENN(A1=12;"D";WENN(A1=13;"A";WENN(A1=14;"B";WENN(A1=15;"C";" ")))))))))))))));" ")

Dann habe ich daneben in Zelle D10 anzeigen lassen, ob die Antwort richtig oder falsch ist oder mehrere Antworten angekreuzt wurden. Ob die Antwort richtig ist, habe ich dadurch erreicht, dass ich "RICHTIGE ANTWORT" anzeigen lasse, wenn der Buchstabe in D9 mit der Zelle A6, A7... übereinstimmt, also in D9 beispielsweise D steht und ein Kreuz in B7 ist. Die Formel in D10 lautet:

=WENN(ODER(UND(C10="A";A6="X";B6="";A7="";B7="");UND(C10="B";A6="";B6="X";A7="";B7="");UND(C10="C";A6="";B6="";A7="X";B7="");UND(C10="D";A6="";B6="";A7="";B7="X"));"RICHTIGE ANTWORT";WENN(UND(A6="";B6="";A7="";B7="");" ";WENN(ODER(UND(A6="X";B6="X");UND(A6="X";A7="X");UND(A6="X";B7="X");UND(B6="X";A7="X");UND(B6="X";B7="X");UND(A7="X";B7="X");UND(A6="X";B6="X";A7="X");UND(A6="X";B6="X";B7="X");UND(A6="X";A7="X";B7="X");UND(B6="X";A7="X";B7="X");UND(A6="X";B6="X";A7="X";B7="X"));"ES KÖNNEN NICHT MEHRERE ANTWORTEN ANGEKREUZT WERDEN";"FALSCHE ANTWORT")))

Ich möchte jetzt, dass nur wenn in Zelle D10 "RICHTIGE ANTWORT" anzeigt, die "Weiter" Schaltfläche sichtbar ist. Ich habe schon über Ereignisse geschafft, dass die Schaltfläche nur sichtbar ist, wenn der Text manuell in D10 eingegeben wird, wird er allerdings durch diese Formeln angezeigt, funktioniert das Makro nicht. Ich habe auch schon ein Makro gefunden, dass die Schaltfläche nur dann anzeigt, wenn der Text durch die WENN-Formel in Zelle A1, in diesem Beispiel für D10 verwendet, WENN(B1=1;"RICHTIGE ANTWORT";0). B1 steht hier stellvertretend für D9, aber in D9 wird auch wiederum der Wert nicht manuell eingetragen sondern wieder mit einer WENN-Formel und in A1 wird der Wert auch nicht manuell eingetragen sodern über die "Weiter" Schaltfläche, die eben unsichtbar gemacht werden soll. Das Makro hierfür lautet:

REM ***** BASIC *****

Dim event
Dim oSheet as Object
Dim oRange as Object
Dim oForm as Object
Sub Check_A1(event)
'Sub Check_A1()
oSheet = thiscomponent.sheets.getbyname("Tabelle1")
' Die Zelle in der die Wenn-Funktion steht
oRange1 = oSheet.getcellrangebyname("A1")
' Die Zelle auf welche reagiert werden soll
oRange2 = oSheet.getcellrangebyname("B1")

oForm=thisComponent.DrawPages.getByIndex(0)
oForm=oForm.getForms.getByIndex(0).getByIndex(0)

if oRange2.queryIntersection(event.RangeAddress).count = 1 then

If oForm.Name="Schaltfläche 1" AND oRange1.Text.String = "richtige Antwort" then
oForm.EnableVisible ="True"
ElseIf oForm.Name="Schaltfläche 1" AND oRange1.Text.String <> "richtige Antwort" then
oForm.EnableVisible ="False"
End If
end if

End Sub

Jetzt müssen quasi noch die beiden ewig langen WENN-Formeln miteingebaut werden.

Gibt es hier begabte Programmierer, die mir helfen können? Vielen Dank schonmal!!!
Ganz liebe Grüße, Katja

Re: Hilfe kompliziertes Makro erstellen

Verfasst: Do 4. Feb 2021, 08:50
von Mondblatt24
Hallo KatjaBauer alias AlinaGeier,


CROSSPOSTING!


http://de.openoffice.info/viewtopic.php ... 96#p293596

Multiposting - Was ist das und warum mag die keiner


Gruß
Peter


PS: Auch hier gibt es extra einen Bereich der sich mit Makros beschäftigt: LibreOffice Programmierung

Re: Hilfe kompliziertes Makro erstellen

Verfasst: Do 4. Feb 2021, 08:57
von KatjaBauer
Sorry, das tut mir echt leid, ich wollte nur so viele Menschen wie möglich erreichen mit meiner Frage:( Ich habe nicht gewusst, dass man das nicht tun soll aber hätte, falls auf einen der beiden Foren eine Lösung gefunden worden wäre diesen dann auch auf dem anderen gepostet, damit andere, die dieselbe Frage haben, auch eine Lösung finden können.
Ich wollte damit echt keinen Schade anrichten, tut mir wirklich leid:((

Re: Hilfe kompliziertes Makro erstellen

Verfasst: Do 4. Feb 2021, 09:03
von Mondblatt24
KatjaBauer hat geschrieben:
Do 4. Feb 2021, 08:57
Ich habe nicht gewusst, dass man das nicht tun soll
Aber sicher darf man das tun, nur sollten die Fragen von vornherein gegenseitig verlinkt werden, um doppelte Hilfe zu vermeiden.

Gruß
Peter

Re: Hilfe kompliziertes Makro erstellen

Verfasst: Do 4. Feb 2021, 09:38
von KatjaBauer
Okay gut, da bin ich beruhigt:) Hier noch der Link zu einem weiteren Forum
https://ask.libreoffice.org/de/question ... -id-291291