einmalige Zufallswerte

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Wutzebub
*
Beiträge: 11
Registriert: Di, 10.10.2006 09:19

Beitrag von Wutzebub »

Beim Starten der Datei bekomme ich folgende Fehlermeldung:
Basic Laufzeitfehler
Argument ist nicht optional

Dann wird der Editor mit folgender Meldung eingeblendet:
Dim zahlen(x-1) As Integer, i As Integer, j As Integer

Was mache ich da falsch?
Wutzebub
*
Beiträge: 11
Registriert: Di, 10.10.2006 09:19

Beitrag von Wutzebub »

Noch was ist mir jetzt aufgefallen. Warum kann ich die Werte, welche untereinander stehen nicht in die Zwischenablage kopieren?



Edit: Dieser Punkt hat sich erledigt. Hab nen Fehler gemacht.
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Wutzebub

Ich hab dir den Code jetzt noch mal umgeschrieben in eine Sub, dh. du kannst sie direkt über eine Schaltfläche aufrufen,
Die Zahlen werden ab der aktuell selektierten Zelle untereinander eingetragen, in den Zellen rechts daneben werden dann zufällige Zellinhalte aus Spalte A ausgegeben.

Die Anzahl der "Lottozahlen" und die Einstellungen des Auswahlbereiches kannst du direkt in den entsprechenden Zeilen am Anfang des Codes verändern.
Falls du nur Zahlen oder nur Namen möchtest, kommentier die nichtgewünschte Ausgabe einfach aus.

Code: Alles auswählen

 sub Lottozahlen
	'"x" aus dem Zahlenbereich "von" "bis"
	x = 11       '← hier eigene Werte eintragen
	von = 1       '← hier eigene Werte eintragen
	bis = 180     '← hier eigene Werte eintragen
	Dim zahlen(x-1) As Integer, i As Integer, j As Integer
	Dim gefunden As Boolean, msg As Variant
	if x > bis - von +1 then
		msgbox("Fehler : Anzahl der Lottozahlen ist größer als Auswahlbereich",3)
		exit sub
	end if
odoc = thisComponent
	mysheet=odoc.currentcontroller.activesheet
	Zellaktuell=odoc.getCurrentSelection().getCellAddress()
	oRow=Zellaktuell.Row
	oColumn=Zellaktuell.column
	Zellaktuell=mysheet.getCellByPosition(ocolumn,orow)
	nrow = orow + i
	Zellziel=mysheet.getCellByPosition(ocolumn,nrow)
	zielname=mysheet.getCellByPosition(ocolumn+1,nrow)
	i = 0
	zahlen(0) = Int((bis - von+1) * Rnd) + von
	msg = zahlen (0)
	'Nicht gewünschte Ausgabe auskommentieren
	Zellziel.value = msg  'Zahlenausgabe in Spalte ocolumn
	zielname.formula = "=A"&msg 'Zufällige Inhalte aus Spalte A in Spalte ocolumn+1
Do
	i = i + 1
	nrow = orow + i
	Zellziel=mysheet.getCellByPosition(ocolumn,nrow)
	zielname=mysheet.getCellByPosition(ocolumn+1,nrow)
	gefunden = False
	zahlen (i) = Int((bis - von+1) * Rnd) + von
	For j = 0 To i - 1
		If zahlen (j) = zahlen (i) Then
			i = i - 1
			gefunden = True
			Exit For
		End If
	Next j
	If Not gefunden Then msg = zahlen (i)
		'Nicht gewünschte Ausgabe auskommentieren
		Zellziel.value = msg    'Zahlenausgabe in Spalte ocolumn
		zielname.formula = "=A"& msg   'Zufällige Inhalte aus Spalte A in Spalte ocolumn+1
Loop Until i = x-1
End sub 
Gruß Karo
Zuletzt geändert von Karolus am Fr, 03.07.2009 08:28, insgesamt 3-mal geändert.
Wutzebub
*
Beiträge: 11
Registriert: Di, 10.10.2006 09:19

Beitrag von Wutzebub »

DAS ist es. Super. Funktioniert ohne Probleme. Vielen Dank.
Wutzebub
*
Beiträge: 11
Registriert: Di, 10.10.2006 09:19

Beitrag von Wutzebub »

:D
Zuletzt geändert von Wutzebub am So, 12.11.2006 06:05, insgesamt 1-mal geändert.
Antworten