Danke für die Hilfe.
In Spalte BD oder BC soll die Zufalszahl hin und zwar ein 6 Seitiger Würfel.
In Spalte BB steht drinnen wieviel würfel gewürfelt werden. z.b. 3 Stck. dann müßte ich ein ergeniss haben von 3 bis 18
( und nicht einfach die Zufallszahl von 1 bis 6 mal 3 nehmen weil dann würde ja nur als ergebniss 3/6/9/12/15/18 rauskommen.
In spalte A übernehme ich die Zahl von hinten einfach verkette sie noch mit ein paar anderen Zahlen und sortiere dann die Komplette Tabelle
nach spalte A absteigend.
(ersten 3 Spalten bleiben so weil überschriften)
Mir würde auch reichen wenn ich am ende 12 spalten mit jedweils 1w6 Zahlen bekomme da kann ich dann mit Formeln die passenden Anzahl zusammenzählen.
Hatte es ja mit Macro aufzeichnen versucht hinten in BD die Zufallszahlen zu kopieren und dann in BC mit Inhalt einfügen einzufügen.
aber leider klappt das aufgezeichnete Macro auch nicht
Die Tabelle wird an Zeilen noch weiter mit der Zeit sich füllen.
Und Zufallszahl muß öfters erzeugt und kopiert werden bei der benutzung deswegen ist ein jedesmal Kopieren/ Inhalt einfügen usw zu aufwendig/zeitintensiv/ sich drauf zu konzentrieren müssen, weil ja auch noch jedesmal etliche andere Werte geändert werden müssen.
Die Zahl 199 is einfach nur die letzte Zeile der aktiven liste , habe ich deswegen weil formeln bis darein gehen damit sie die formeln automatisch erweitern wenn neue Zeilen eingefügt werden.
Die Zahlen 166 bis 148 sind einfach dafür da das sie immer unterhalb der bespielten liste sind.
Und die Zeilen mit 100 sind dafür da das sie auf reserve sind und ganz unterhalb sind und mich im moment nicht stören.
achja die 101 wird dazwischengesetzt falls einer keine Initiative mehr hat
Code: Alles auswählen
REM Zufallszahl zwischen 1 und 6 erzeugen und in gewünschten Zellbereich schreiben
Sub xZufall
Dim oDoc as Object ' Objektvariable für das aktuelle Dokument
Dim oCC as Object ' Objektvariable für den Currentcotroller. Damit ist z.B. ein Zellzugriff möglich
Dim i as Integer ' Zählervariable vom Datantyp Integer
Dim x as Integer ' Variable zur Aufnahme der Zufallszahl vom Datantyp Integer
' Referenzierungen der Objektvariablen
oDoc=ThisComponent
oCC =oDoc.CurrentController
' getCellByPosition ( [in] long nColumn, [in] long nRow )
REM Zählerschleife über Zelle O4:O16
For i = 3 to 201
' Leere Zellen in Spalte "O" beim Schreibvorgang überspringen
if i = 200 then goto weiter
' Zufallszahl erzeugen und in Variable "x" schreiben
x= Int(6 * Rnd)
' PRÜFUNG: Ist x = 0?
' Wenn 20 * Rnd = 0, bzw. kleiner 1 ist, dann
' Wird der Zähler (i) um 1 subtrahiert.
' Dadurch erhält man dann 8 Zahlen zwischen 1 und 20, und ohne 0
if x <=1 then
i=i-1
goto weiter
End if
' Wert aus "x" in Zielzelle schreiben
' Die Adressierung der Zielzelle erfolgt hierdurch:
' getCellByPosition(14,i) 14 ist die Spalte "O".
' "i" ist die Zählervariable. Gestartet wird die Zählung bei 3 und endet bei 15
' Immer daran denken, die Zählung beginnt für Zeilen und Spalte immer bei 0 --> 0,1,2,3...
' Beispiel:
' "A1" = 0,0 --> (Spalte,Zeile)
' Somit ist "O4" = 14,3 --> (Spalte,Zeile)
oCC.ActiveSheet.getCellByPosition(55,i).value= x
weiter:
next i
End Sub
hab das schon mal bekommen und hab es angepaßt habe versucht die formel zu erweitern damit ich vieleicht 12 Spalten mit Zufallszahl hinbekomme.
Ich war zu blöd.
Code: Alles auswählen
REM Zufallszahl zwischen 1 und 20 erzeugen und in gewünschten Zellbereich schreiben
Sub xZufall
Dim oDoc as Object ' Objektvariable für das aktuelle Dokument
Dim oCC as Object ' Objektvariable für den Currentcotroller. Damit ist z.B. ein Zellzugriff möglich
Dim i as Integer ' Zählervariable vom Datantyp Integer
Dim x as Integer ' Variable zur Aufnahme der Zufallszahl vom Datantyp Integer
Dim Y as Integer
' Referenzierungen der Objektvariablen
oDoc=ThisComponent
oCC =oDoc.CurrentController
' getCellByPosition ( [in] long nColumn, [in] long nRow )
REM Zählerschleife über Zelle O4:O16
For i = 3 to 201
' Leere Zellen in Spalte "O" beim Schreibvorgang überspringen
if i = 200 then goto weiter
' Zufallszahl erzeugen und in Variable "x" schreiben
x= Int(6 * Rnd)
' PRÜFUNG: Ist x = 0?
' Wenn 20 * Rnd = 0, bzw. kleiner 1 ist, dann
' Wird der Zähler (i) um 1 subtrahiert.
' Dadurch erhält man dann 8 Zahlen zwischen 1 und 20, und ohne 0
if x <=1 then
i=i-1
goto weiter
End if
' Wert aus "x" in Zielzelle schreiben
' Die Adressierung der Zielzelle erfolgt hierdurch:
' getCellByPosition(14,i) 14 ist die Spalte "O".
' "i" ist die Zählervariable. Gestartet wird die Zählung bei 3 und endet bei 15
' Immer daran denken, die Zählung beginnt für Zeilen und Spalte immer bei 0 --> 0,1,2,3...
' Beispiel:
' "A1" = 0,0 --> (Spalte,Zeile)
' Somit ist "O4" = 14,3 --> (Spalte,Zeile)
oCC.ActiveSheet.getCellByPosition(55,i).value= x
weiter:
next i
For i = 3 to 201
if i = 200 then goto weiter
y= Int(6 * Rnd)
if y <=1 then
i=i-1
goto weiter
End if
oCC.ActiveSheet.getCellByPosition(56,i).value= y
weiter:
next i
End Sub
macht mir leider auch fehler.
Nach welcher Programiersprache muß ich googeln um mich da weiter einzulesen zu können ?
Danke für die Hilfe.
In Spalte BD oder BC soll die Zufalszahl hin und zwar ein 6 Seitiger Würfel.
In Spalte BB steht drinnen wieviel würfel gewürfelt werden. z.b. 3 Stck. dann müßte ich ein ergeniss haben von 3 bis 18
( und nicht einfach die Zufallszahl von 1 bis 6 mal 3 nehmen weil dann würde ja nur als ergebniss 3/6/9/12/15/18 rauskommen.
In spalte A übernehme ich die Zahl von hinten einfach verkette sie noch mit ein paar anderen Zahlen und sortiere dann die Komplette Tabelle
nach spalte A absteigend.
(ersten 3 Spalten bleiben so weil überschriften)
Mir würde auch reichen wenn ich am ende 12 spalten mit jedweils 1w6 Zahlen bekomme da kann ich dann mit Formeln die passenden Anzahl zusammenzählen.
Hatte es ja mit Macro aufzeichnen versucht hinten in BD die Zufallszahlen zu kopieren und dann in BC mit Inhalt einfügen einzufügen.
aber leider klappt das aufgezeichnete Macro auch nicht :-(
Die Tabelle wird an Zeilen noch weiter mit der Zeit sich füllen.
Und Zufallszahl muß öfters erzeugt und kopiert werden bei der benutzung deswegen ist ein jedesmal Kopieren/ Inhalt einfügen usw zu aufwendig/zeitintensiv/ sich drauf zu konzentrieren müssen, weil ja auch noch jedesmal etliche andere Werte geändert werden müssen.
Die Zahl 199 is einfach nur die letzte Zeile der aktiven liste , habe ich deswegen weil formeln bis darein gehen damit sie die formeln automatisch erweitern wenn neue Zeilen eingefügt werden.
Die Zahlen 166 bis 148 sind einfach dafür da das sie immer unterhalb der bespielten liste sind.
Und die Zeilen mit 100 sind dafür da das sie auf reserve sind und ganz unterhalb sind und mich im moment nicht stören.
achja die 101 wird dazwischengesetzt falls einer keine Initiative mehr hat :-)
[code]
REM Zufallszahl zwischen 1 und 6 erzeugen und in gewünschten Zellbereich schreiben
Sub xZufall
Dim oDoc as Object ' Objektvariable für das aktuelle Dokument
Dim oCC as Object ' Objektvariable für den Currentcotroller. Damit ist z.B. ein Zellzugriff möglich
Dim i as Integer ' Zählervariable vom Datantyp Integer
Dim x as Integer ' Variable zur Aufnahme der Zufallszahl vom Datantyp Integer
' Referenzierungen der Objektvariablen
oDoc=ThisComponent
oCC =oDoc.CurrentController
' getCellByPosition ( [in] long nColumn, [in] long nRow )
REM Zählerschleife über Zelle O4:O16
For i = 3 to 201
' Leere Zellen in Spalte "O" beim Schreibvorgang überspringen
if i = 200 then goto weiter
' Zufallszahl erzeugen und in Variable "x" schreiben
x= Int(6 * Rnd)
' PRÜFUNG: Ist x = 0?
' Wenn 20 * Rnd = 0, bzw. kleiner 1 ist, dann
' Wird der Zähler (i) um 1 subtrahiert.
' Dadurch erhält man dann 8 Zahlen zwischen 1 und 20, und ohne 0
if x <=1 then
i=i-1
goto weiter
End if
' Wert aus "x" in Zielzelle schreiben
' Die Adressierung der Zielzelle erfolgt hierdurch:
' getCellByPosition(14,i) 14 ist die Spalte "O".
' "i" ist die Zählervariable. Gestartet wird die Zählung bei 3 und endet bei 15
' Immer daran denken, die Zählung beginnt für Zeilen und Spalte immer bei 0 --> 0,1,2,3...
' Beispiel:
' "A1" = 0,0 --> (Spalte,Zeile)
' Somit ist "O4" = 14,3 --> (Spalte,Zeile)
oCC.ActiveSheet.getCellByPosition(55,i).value= x
weiter:
next i
End Sub
[/code]
hab das schon mal bekommen und hab es angepaßt habe versucht die formel zu erweitern damit ich vieleicht 12 Spalten mit Zufallszahl hinbekomme.
Ich war zu blöd.
[code]
REM Zufallszahl zwischen 1 und 20 erzeugen und in gewünschten Zellbereich schreiben
Sub xZufall
Dim oDoc as Object ' Objektvariable für das aktuelle Dokument
Dim oCC as Object ' Objektvariable für den Currentcotroller. Damit ist z.B. ein Zellzugriff möglich
Dim i as Integer ' Zählervariable vom Datantyp Integer
Dim x as Integer ' Variable zur Aufnahme der Zufallszahl vom Datantyp Integer
Dim Y as Integer
' Referenzierungen der Objektvariablen
oDoc=ThisComponent
oCC =oDoc.CurrentController
' getCellByPosition ( [in] long nColumn, [in] long nRow )
REM Zählerschleife über Zelle O4:O16
For i = 3 to 201
' Leere Zellen in Spalte "O" beim Schreibvorgang überspringen
if i = 200 then goto weiter
' Zufallszahl erzeugen und in Variable "x" schreiben
x= Int(6 * Rnd)
' PRÜFUNG: Ist x = 0?
' Wenn 20 * Rnd = 0, bzw. kleiner 1 ist, dann
' Wird der Zähler (i) um 1 subtrahiert.
' Dadurch erhält man dann 8 Zahlen zwischen 1 und 20, und ohne 0
if x <=1 then
i=i-1
goto weiter
End if
' Wert aus "x" in Zielzelle schreiben
' Die Adressierung der Zielzelle erfolgt hierdurch:
' getCellByPosition(14,i) 14 ist die Spalte "O".
' "i" ist die Zählervariable. Gestartet wird die Zählung bei 3 und endet bei 15
' Immer daran denken, die Zählung beginnt für Zeilen und Spalte immer bei 0 --> 0,1,2,3...
' Beispiel:
' "A1" = 0,0 --> (Spalte,Zeile)
' Somit ist "O4" = 14,3 --> (Spalte,Zeile)
oCC.ActiveSheet.getCellByPosition(55,i).value= x
weiter:
next i
For i = 3 to 201
if i = 200 then goto weiter
y= Int(6 * Rnd)
if y <=1 then
i=i-1
goto weiter
End if
oCC.ActiveSheet.getCellByPosition(56,i).value= y
weiter:
next i
End Sub
[/code]
macht mir leider auch fehler.
Nach welcher Programiersprache muß ich googeln um mich da weiter einzulesen zu können ?