534 Aufrufe
Gefragt in Tabellenkalkulation von robbi58 Mitglied (978 Punkte)

Ich möchte aus einer Datenbank auf "sheet2" (hier Fragensammlung) Zufallsfragen auf "sheet1" erzeugen!

Das hat auch funktioniert, nur möchte ich die Lösungen auf "sheet1" auch anzeigen können.

Bei Klick auf Start generiert das Programm zehn Fragen aus der Fragensammlung. Nun möchte ich aber im Feld B auf sheet1 auch die Lösung der Zufallsfrage einfügen. Denn dann könnte ich entweder mit einer bedingten Formatierung oder mit einem eigenen CommandButton die Lösungen anzeigen lassen (muss ich mir noch überlegen wie).

Ich habe folgende Codes eingegeben:

Nachdem ich einiges schon versucht habe, möchte ich mich ans Forum wenden, ob jemand eine Lösung für mein Problem (meine Probleme) findet. Recht herzlichen Dank von einem VBA Neuling.

Robert

3 Antworten

+2 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
ausgewählt von halfstone
 
Beste Antwort
Hallo Robert,

in deinem Makro erzeugst du eine Zeilennummer, über die du die Frage aus der Sammlung in das Aufgabenblatt kopierst. Genau diese Zeilennummer führt dich auch auf die dazugehörige Lösung. Also schreibst du die Zeilennummer in eine Zelle innerhalb der Zeile, in der  die Frage im Aufgabenblatt steht. Hier im Beispiel deines Aufgabenblattes ist die erste Frage in Zeile 2 (vermehre die Zahl 7 ...) die 11. Frage aus dem Katalog. also schreibst du in Zelle (X2) den Index 11. Die zu vergleichende Lösung steht bekommst du über

=INDIREKT("Tabelle2!B"&X2)

Du musst nur noch den richtigen Bezug auf die Tabelle mit den Aufgaben korrigieren, Hier ist es Tabelle 2

Also vergleichst du die eingegebene Antwort in A2 mit INDIREKT("Tabelle2!B"&X2) und kannst anhand des Ergebnisses die Formatierung wählen

Gruß computerschrat
+2 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Robert,

eine andere Lösung wäre eine SVERWEIS-Formel in deiner Spalte B (da du die Fragen ja aus dem Sheet1 übernimmst, können diese als Suchkriterium dienen).Hier die Formel für die Zelle B2:

=SVERWEIS(A2;Sheet1!$A$1:$B$21;2;FALSCH)

oder falls du eine Fehlermeldung bei einer leeren Zelle in Spalte A abfangen willst:

=WENNFEHLER(SVERWEIS(B1;Sheet1!$A$1:$B$21;2;FALSCH);"")

Den Bereich (hier !$A$1:$B$21) musst du natürlich auf deine Verhältnisse anpassen. Die Formel kannst du soweit wie benötigt nach unten ziehen.

Gruß

M.O.
0 Punkte
Beantwortet von robbi58 Mitglied (978 Punkte)
Ich danke "computerschrat" und "M.O." für die Antworten. Ich habe beiden Möglichkeiten versucht und beide Lösungen haben zum gewünschten Resultat geführt. Ich musste nur beim sverweis auf sheet2 abändern, da die Antworten auf sheet 2 stehen.

Recht herzlichen Dank von meiner Seite.
...