1.4k Aufrufe
Gefragt in Tabellenkalkulation von sroesli Einsteiger_in (11 Punkte)
Für ein Lehrmittel Sek1 habe ich folgende Frage:
Mit Excel werden 6 Zufallszahlen erzeugt. Diese werden per Klick auf
eine Schaltfläche ausgelöst.
Die 6 geogenen Zahlen werden in eine Tabelle Spalte A eingetragen.
Bei der nächsten Ziehung in Spalte B, dann Spalte C und so weiter.
Kann mir da jemand weiterhelfen?

5 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

so wie du schreibst, hast du wohl ein Makro mit einem Button erstellt.

Den Wechsel der Spalte müsste man in dieses Makro einbinden, daher stelle mal dein Makro zur Verfügung. Ein Nachbau ist so nicht möglich.

Gruß

Helmut
0 Punkte
Beantwortet von sroesli Einsteiger_in (11 Punkte)
Lieber Helmut

Das Makro ist untenstehend, ich glaub aber nicht, dass das weiterhilft.
Es werden dabei in Spalte A 42 Zufallszahlen erzeugt. Diese sind von 1
bis 42 nummeriert. Die Zufallszahlen werden der Grösse nach sortiert,
wobei die Nummerierung mitsortiert wird. Die obersten 6 Nummern
neben den Zufallszahlen sind dann die 6 gezogenen Zahlen. Diese
werden (nicht im Makro) in ein Feld übertragen.
Mir würde es schon reichen, wenn bei der nächsten Ziehung die neuen
Zahlen ins nächste Feld geschrieben werden …

vielen Dank

Beat ( aus der Schweiz)


' Ziehen Makro
'
' Tastenkombination: Wahltaste+Befehlstaste+q
'
Range("A2:A43").Select
ActiveWorkbook.Worksheets("Variante 2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Variante 2").Sort.SortFields.Add
Key:=Range( _
"A2:A43"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Variante 2").Sort
.SetRange Range("A2:A43")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select
ActiveWindow.SmallScroll Down:=15
Range("A2:B43").Select
ActiveWorkbook.Worksheets("Variante 2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Variante 2").Sort.SortFields.Add
Key:=Range( _
"B2:B43"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Variante 2").Sort
.SetRange Range("A2:B43")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("L5").Select
End Sub
0 Punkte
Beantwortet von
Hallo Beat,

VB ist nicht so meine Sache, aber mit ein paar Excelbordmitteln und Formeln komme ich zu deinem gewünschten Ergebnis. Hier zuersteinmal der aufgezeichnete Code für deinen Button:

Sub Sortieren()

Range("A2:B43").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("D1").Value = Range("D1") + 1
Range("A2:A7").Select
Selection.Copy
Range("Ziel").Select
ActiveSheet.Paste
End Sub

Dazu ist nun folgendes zu sagen:

Der Code erhöht den Wert in D1 nach jedem Ausführen des Makros immer um 1.
Desweiteren musst Du über Einfügen - Namen - Definieren folgenden Bereichsnamen vergeben:
Name: Ziel
Bezieht sich auf: =INDIREKT(ADRESSE(2;Tabelle1!$D$1+3))
(wobei Tabelle1! durch deinen Tabellenblattnamen ersetzt werden muss)


Zum Code noch ein Hinweis. Um einmalig vorkommende zufällige Zahlen zwischen 1 und 42 zu erzeugen ist es nicht notwendig, die Nummerierung (Zellen A2:A43) neu zu sortieren.

Probiere das einmal so aus. Erstelle einfach mal das Arbeitsblatt wie beschrieben und schau ob das so deinen Vorstellungen entspricht. Wenn du dann Probleme mit dem Umsetzen auf deine Zielzellen hast, einfach nochmal mit Angabe deiner Ausgabevorstellungen melden.

CU Aliba
0 Punkte
Beantwortet von sroesli Einsteiger_in (11 Punkte)
Liebe(r) Aliba

Da hast du dir eigentlich was verdient. Die Datei funktioniert optimal,
den Rest konnte ich mir zusammenschustern.
Eine Flasche Wein oder so würde ich dir schon zukommen lassen.
Wenn du willst: w.be@hispeed.ch

Liebe Grüsse

Beat
0 Punkte
Beantwortet von
Hi Beat,

deine nette Rückmeldung ist Dank genug. Freut mich, daß es funzt.

CU Aliba
...