2.2k Aufrufe
in Tabellenkalkulation von eunes Einsteiger_in (3 Punkte)
Es geht prinzipiell darum, einen per Zufall generierten Fragenkatalog zu erstellen.

Ausgangssituation:
Es existieren mehrere xls-Dateien nach Themengebieten, z.B. Erkunde, Physik,
Mathe, Deutsch, usw.
Diese Dateien sind wie folgt gegliedert:
- Frage1
- Antwort1
- Frage2
- Antwort2

Aus diesen Dateien sollen nun per Zufall die Fragen, samt zugehörigen Antworten
ausgelesen und in eine neue Datei geschrieben werden.

Also sollte man die Dateien auswählen können, aus der die Fragen ausgelesen
werden sollen.

Alternativ könnte man die Fragen auch in einer einzelnen Excel-Tabelle mit
verschiedenen Spalten erstellen.
- Kategorie | Frage1 | Antwort1
- Kategorie | Frage2 | Antwort2

In der Auswahlmaske sollte man also die Kategorien, oder eben Dateien auswählen
können
und dann per "Knopfdruck" eine Ausgabedatei erhalten.

Habt ihr hier vielleicht ne Idee, wie ich das anstellen kann???
Bin leider völliger Newbie, was Excel-Programmierung angeht.

5 Antworten

0 Punkte
von nighty Experte (6.6k Punkte)
hi dumpfbacke ^^

ein Beispiel :-)

gruß nighty

Sub makro01()
Randomize Timer
Dim endeindex As Integer, allezahlen As Integer
Dim gezogen As Integer, zaehler As Integer, ziehung As Integer
Dim strAlles As String, strDaten() As String
Open Application.GetOpenFilename("Txt-Dateien (*.txt), *.txt", , "Datei auswählen", , False) For Binary As #1
strAlles = Space(LOF(1))
Get #1, , strAlles
Close #1
If Not Right(strAlles, 2) = vbCrLf Then strAlles = strAlles & vbCrLf
strDaten = Split(strAlles, vbCrLf)
ReDim zuzahl(UBound(strDaten()) / 2) As Integer
ReDim zahl(UBound(strDaten()) / 2)
endeindex = UBound(strDaten()) / 2
For allezahlen = 1 To UBound(strDaten()) Step 2
zaehler = zaehler + 1
zuzahl(zaehler) = allezahlen
Next allezahlen
For ziehung = 1 To UBound(strDaten()) / 2
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
Cells(ziehung, 1) = strDaten(zahl(ziehung) - 1)
Cells(ziehung, 2) = strDaten(zahl(ziehung))
Next ziehung
End Sub
0 Punkte
von nighty Experte (6.6k Punkte)
hi all ^^

ops besser waere vielleicht mister x oder mister unbekannt gewesen,bin immer leicht verwirrt wenn anrede und gruß fehlt :-)

gruß nighty
0 Punkte
von nighty Experte (6.6k Punkte)
hi all ^^

Kurzbeschreibung O_o

gruß nighty

ein dialogfenster fordert den benutzer auf eine xx.txt(Dateien namens Erdkunde oder mathe etc.) zu oeffnen

es wird eine einspaltige abwaertsgehende structur der Daten vorrausgesetzt

die Daten werden in ein ein dimensionales Array gesplittet übertragen

der ermittelte ende index des zuvor estellten Arrays dient der Generierung einer neuen Zahlenkolonne
z.b. 1,3,5,7 etc. ,das waere dann immer der index einer frage

ein zufallsgenerator zieht durch eine dauernde verkuerzung des Array nun alle Indexe des datenarrays durch
Darstellung auf der tabelle
0 Punkte
von
hi dumpfbacke ^^
sehr netter Umgangston hier
besser waere vielleicht mister x oder mister unbekannt gewesen
nö, wie wärs mit seinem Nicknamen? oder vielleicht einfach gar nichts?
jedenfalls muss man nicht beleidigend werden (und nein, dein ^^ macht es nicht besser)
0 Punkte
von nighty Experte (6.6k Punkte)
hi all ^^

bei bedarf aendere ich es :-)

gruss nighty

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...