Hallo, Ludwig!
Ich nehme an, die PRE-Tags sind soweit durch.
Willst Du nun schrittweise kürzen oder gleich komplett? Dafür bietet sich dann der Größte gemeinsame Teiler an, wie wir aus der Schule wissen. Hier als Funktion:
Function GGT(plngZaehler As Long, plngNenner As Long)
If plngNenner = 0 Then
GGT = plngZaehler
Else
GGT = GGT(plngNenner, plngZaehler Mod plngNenner)
End If
End Function
Somit wäre Dein gekürzter Bruch gleich
Zähler/GGT(Zähler, Nenner)
--------------------------
Nenner/GGT(Zähler, Nenner)
Wenn Du das haben willst:
24 12 6 2
\_\_\_ = \_\_\_ = \_\_\_ = \_\_\_
36 18 9 3
musst Du das schon iterativ durchführen und versuchen, durch alle möglichen Zahlen, beginnend bei 2, endend bei der kleineren der beiden, zu kürzen.
Dies geht wohl nur über eine For-next-Schleife o.ä.
a) Wie bitte geht diese hier für Zähler und Nenner?
s. o.
b) Wie binde ich diese VB-Routine (ohne Makroaufruf?) so ein,
Was meinst Du mit „ohne Makroaufruf“? Ohne gesonderten Makroaufruf?
dass sie immer dann, wenn per Tastendruck der Zufallsgenerator
automatisch Aufgaben erstellt, zugleich die VB-Routine
automatisch startet und das Ergebnis an das Excel-Arbeitsblatt
zurückgibt?
Da kommt’s drauf an, wie Du das ganze dargestellt hast. Ist der Bruch in einer Zelle? Oder stehen Zähler und Nenner in zwei Zellen?
Prinzipiell erzeugst Du Deine Aufgaben und berechnest die Lösungen.
Ich gehe jetzt mal davon aus, dass Zähler und Nenner in zwei übereinander stehenden Zellen stehen, z. B. A1 und A2. In B soll dann das gekürzte Ergebnis rein. Also kommt nach B1 die Formel
=A1/GGT(A1; A2)
und nach B2
=A2/GGT(A1; A2)
Das sollte sich dann automatisch berechnen…
Gruß, Manfred
Für Hilfe wäre sehr dankbar
Ludwig