ich würde gerne über Excel ein Zufallsgenerator fürs "Lernen" erstellen. Insgesamt habe ich 40 Arbeitsblätter, auf denen jeweils eine Karteikarte drauf ist. Per CommandButton möchte ich gerne per Zufall auf eine der 40 Arbeitsblätter (= Karteikarte) kommen. Diesen CommandButton würde ich gerne auf allen Arbeitsblättern (=Karteikarten) haben, damit ich ohne viel Aufwand zur nächsten Karteikarte komme. Ziel ist also das zufällige Lernen von Karteikarten in Excel. Ich hoffe das ich mich verständlich ausdrücke :)
Leider weiß ich nicht genau, wie ich das machen könnte. da ich keine Erfahrung mit VBA habe. Hat jemand eventuell eine Idee, wie man das Umsetzen könnte? Ich würde mich sehr darüber freuen :)
Option Explicit Sub Zufallszahl() Range("Z999").Formula = "=RANDBETWEEN(1,40)" MsgBox "Tabelle" & Range("Z999") End Sub
Es benutzt dafür als Zwischenspeicher die Zelle Z999 in der Erwartung, dass Du die noch nicht benutzt und so nichts zerstört wird.
Jetzt brauchst Du in jeder Tabelle eine Schaltfläche zum Starten des Makro. Es liefert Dir eine der zufällig ausgewählten Tabellen 1 bis 40. Wenn zufällig die gleiche tabelle geliefert wird, musst Du es weiderholen ..
In einem leeren Beispiel habe ich das mal für die ersten beiden Tabelle in Spalte O umgesetzt. Wenn Du noch gar keine Ahnung von VBA hast, darfst Du mir Dein Tabellenblatt zuschicken und ich baue es dort ein.
Die Lösung ist erst mal sehrt simpel um zu sehen, ob die Lösung in etwa Deinen Erwartungen entspricht.
LG Peter
Folgende(r) 1 Nutzer sagt Danke an PAndersen für diesen Beitrag:1 Nutzer sagt Danke an PAndersen für diesen Beitrag 28 • Korbi35
07.01.2019, 16:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2019, 16:38 von Korbi35.)
@PAnderson,
das ist schon so ähnlich wie ich es haben möchte :) Vielen Dank. Eine Kleinigkeit fehlt mir jedoch noch: ich würde es gerne so wollen, dass ich automatisch auf dem Arbeitsblatt lande und nicht, dass mir Excel sagt, auf welches Arbeitsblatt ich gehen soll. Kriegst du das irgendwie hin oder hast ein Tipp? :)
@Flotter Feger:
auch dir vielen Dank :) Auch eine elegante Lösung. Danke
07.01.2019, 16:16 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2019, 16:16 von Der Steuerfuzzi.)
@PAndersen: Ohne Würdigung, ob der Dateiaufbau sinnvoll ist: Ich würde hier nicht den Umweg über eine Zelle gehen, sondern die Zufallszahl direkt ermitteln und verwenden:
Code:
Sub TabellePerZufall() 'Wenn die ersten 40 Tabellen in der Datei die Aufgaben enthalten: Sheets(WorksheetFunction.RandBetween(1, 40)).Activate End Sub
Ich würde auf keinen Fall auf jedes Blatt einen Button setzten. Ich würde es eher in ein Menüband integrieren oder einer Tastenkombination zuweisen (z.B. OnKey bei Workbook_Open).
Moin! Da ich davon ausgehe, dass einem Lernwilligen 40 "Karteikarten" aka Tabellenblätter irgendwann zu wenig sind und man nicht immer den Code ändern will … Aufbauend auf Steuerfuzzis Code dann halt: