Nachdem das Ausblenden von Zeilen in Kombination mit dem Blattschutz nicht richtig funktioniert, habe ich beschlossen, das Arbeitsblatt anders aufzubauen:
Mit den Buttons in der Spalte A navigiere ich zu den einzelnen Arbeitsblättern (Level 1-4; sheet 1 -4 wird später ausgeblendet). Zu jedem Arbeitsblatt gehört ein sheet, in das ich unterschiedliche Aufgaben geschrieben habe (Level1 und sheet 1 gehören zusammen, Level 2 und sheet 2 ,...).
Mit dem CommandButton (Aufgabenblatt erzeugen) will ich nun die Aufgabenstellungen von sheet 1 auf Level 1, von sheet 2 auf Level 2 usw. übertragen, bzw. generieren lassen. Das funktioniert bei sheet 1 und Level 1 fast problemlos:
Public Sub CommandButton6_Click()
Dim i, RowNum
Worksheets("Level1").Range("B:B").ClearContents
For i = 1 To 5
generate:
RowNum = Application.RoundUp(Rnd() * 13, 0)
Cells(i, 3).Value = RowNum
If Application.CountIf(Worksheets("Level1").[B:B], Worksheets("sheet1").Cells(RowNum, "A")) = 0 Then
Worksheets("Level1").Range("B" & Rows.Count).End(xlUp).Offset(1).Value = Worksheets("sheet1").Cells(RowNum, "A").Value
Else
GoTo generate
End If
Next i
End Sub
Allerdings schreibt das Programm auch Zahlen im Arbeitsblatt "Kompetenzraster" in den Zellen C1:C5 (siehe beigefügtes Bild). Warum das so ist, kann ich leider nicht nachvollziehen. Nun möchte ich aber mit demselben Button auch auf Level 2 mit sheet 2 , Level 3 mit sheet3, usw. die Zufallsfragen generieren. Habe alles mögliche probiert und in den Foren recherchiert, jedoch noch keine passable Lösung gefunden. Guter Rat ist teuer!
Ich bedanke mich jetzt schon für eure Anregungen.
Robert
PS: warum mit einem Button alles gleichzeitig generieren (ich möchte dem Bearbeiter die Möglichkeit geben, zwischen den Levels hin- und herzuklicken, ohne die Fragen stets neu zu generieren. Damit kann man bei bereits erledigten Aufgabenstellungen nachschlagen.