BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

[Gelöst]Zufallszahlen sortieren /Macro geht nicht

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Taghor01
Beiträge: 22
Registriert: Mi 27. Sep 2017, 13:42

Re: Zufallszahlen sortieren /Macro geht nicht

Beitrag von Taghor01 » So 18. Nov 2018, 17:42

Danke
Ich werde noch lösungen testen und auch schauen was Craig mir da noch schreibt .
Trotzdem denke ich werde ich erstmal Gelöst schreiben. weil ich nicht weiß wie schnell
das mein Gehirn alles verarbeitet.
Wenn dann öffne ich es später nochmal.

Und Craig du kannst ruhig hier noch ne Lösung reinschreiben.

Taghor01
Beiträge: 22
Registriert: Mi 27. Sep 2017, 13:42

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von Taghor01 » So 18. Nov 2018, 18:08

Das is die Letzte Version von mir mit 12 Spalten.
incl. den Button für Würfeln und einen zum anschließenden sortieren.

Die Spalte A hat die Zufallszahl und andere Werte Verbunden damit ich eine Zahl zum sortieren habe.
( ja ich weiß habe beim Verketten noch nen denkfehler drinnen die Ini von 8 ist größer als eine 70 aber das schaffe ich noch :D )

wenn jetzt einer das Macro ändern möchte / will /bitte Bitte damit es schneller eingetragen wird bin ich dankbar.
Dateianhänge
SR 5 Ini 99% 4.02.ods
(68.64 KiB) 153-mal heruntergeladen

craig
Beiträge: 318
Registriert: Sa 14. Mai 2016, 12:36

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von craig » So 18. Nov 2018, 20:06

Hallo Taghor,
Taghor hat geschrieben:wenn jetzt einer das Macro ändern möchte / will /bitte Bitte damit es schneller eingetragen wird bin ich dankbar.
Bei allem Respekt, auch Helfer wie ich haben eine Familie und noch anderes zutun. Da steht dann die Forenhilfe leider etwas hinten an.

Naja, hier ersteinmal ein Code der Arrays verwendet und erheblich schneller ist als die Zufußmethode:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub ZufallSpalteBEArray
Dim oDoc as Object 			' Objektvariable für das aktuelle Dokument
Dim oCC as Object 			' Objektvariable für den Currentcontroller. Damit ist z.B. ein Zellzugriff möglich
Dim oRange as Object		' Objektvariable für den Zellbereich
Dim mRND(0 to 5) as Integer	' Array für die Aufnahme der Zahlen 1-6
Dim mRange() as Integer		' Array, welches später allke ZUfallszahlen enthält

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

' Zellbreich festlegen
oRange = ThisComponent.Sheets(0).getCellRangeByName("BE3:BE201")

' Array dimensionieren, in dem einfach der gewünschten Zellbereich übergeben wird.
mRange() = oRange.getDataArray()


' Bei mRND handelt es sich um ein Array, welches aus 6 Datenfeldern besteht.
' Die Datenfelder werden mittels der Schleife mit Zahlen von 1 - 6 gefüllt.
' mRND(0) = 1
' mRND(1) = 2
' mRND(2) = 3
' usw.
' Das befüllen des Arrays ginge auch ohne Schleife:
' mRND()=Array(1,2,3,4,5,6)
for i = 0 to 5
	' Arrayfelder(0 bis 5) mit Zahlen von 1 -6 füllen
	mRND(i)=i+1
next i
	' uBound = Obergrenze des Arrays. Enpricht in diesem Fall 199 Zellen = 198 Datenfelder gezählt von 0 - 198
	For i = 0 to ubound(mRange())
			' Zufallzahlen für Datenfelder des Arrays mRND() erzeugen 
			' Feld 0 bis Feld 5
			' Feld 0 = 1
			' Feld 2 = 2, usw.
			x=5 * rnd()
			' Wenn Zelle 200 erreiocht, dann nichts in Array schreiben
			if i = 197 then 
				mRange(i)(0) =""
			' Sonst
			Else
				' Array mit Zufallsdaten füllen
				mRange(i)(0)=mRND(x)
			End if
	next i
 
' Das komplette Array in Zellbereich schreiben 
oRange.setDataArray(mRange())

End Sub
Damit Du es für Dein Sheet einsetzen kannst, müßtest Du zusätzliche Rangeobjekte und Arrays anlegen.
Beispiel:

Code: Alles auswählen

Dim oRangeSpalteBE as Object		' Objektvariable für den Zellbereich
Dim oRangeSpalteBF as Object		' Objektvariable für den Zellbereich
usw.
Dann:

Code: Alles auswählen

' Zellbereiche festlegen
oRangeSpalteBE = ThisComponent.Sheets(0).getCellRangeByName("BE3:BE201")
oRangeSpalteBF = ThisComponent.Sheets(0).getCellRangeByName("BF3:BF201")
usw.
Das Array mRange() kann für alle Spalten wiederverwendet werden, da es nur die Zahlen 1-6 enthält.

Da ich nicht weiß, welche Pläne Du noch hast kannst Du für jede Spalte ein eigenes Datenarray anlegen.
Das muss nicht gemacht werden, aber wenn Du in Zukunft die Zufallsdaten noch wo anders im Blatt nutzen möchtest,
dann ist es ggf. sinnvoll mit unterschiedliche Arrays zu arbeiten. Sie spiegeln dann in Summe den kompletten Zufallsbereich wieder.
Es gibt noch andere Methode, aber es fehlt mir im Augenblick die Zeit dies auszuführen.

Code: Alles auswählen

Dim mRangeBE() as Integer		' Array, welches später alle Zufallszahlen der Spalte BE enthält
Dim mRangeBF() as Integer		' Array, welches später alle Zufallszahlen der Spalte BF enthält
usw.
Dann die Dimensionierung der Arrays, durch Übergabe des gewünschten Zufallsbereichs:

Code: Alles auswählen

' Array dimensionieren, in dem einfach der gewünschten Zellbereich übergeben wird.
mRangeBE() = oRangeBE.getDataArray()
mRangeBF() = oRangeBF.getDataArray()
usw.
Dann müssen in der For Next Schleife die Array-Namen angepasst werden.

Am Ende erfolgt dann die Übergabe der Arrayinhalte an den jeweiligen Zellbereich:

Code: Alles auswählen

' Das komplette Array in Zellbereich schreiben 
oRangeBE.setDataArray(mRangeBE())
oRangeBF.setDataArray(mRangeBF())
usw.
Gruß

Craig

Nie die Sicherungskopie vergessen!

═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)

nikki
Beiträge: 573
Registriert: Sa 30. Jul 2016, 14:14
Kontaktdaten:

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von nikki » So 18. Nov 2018, 22:22

Hallo Craig,

falls Du es noch nicht bemerkt haben solltest, Taghor beschäftigt 2 Foren, siehe http://de.openoffice.info/viewtopic.php?f=2&t=70950
Gruß

--------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)

craig
Beiträge: 318
Registriert: Sa 14. Mai 2016, 12:36

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von craig » So 18. Nov 2018, 22:43

@nikki
Ich weiß, ggf. hilfst auch anderen Suchenden in Bezug auf Arrays und Zufallszahlen. ;)
Gruß

Craig

Nie die Sicherungskopie vergessen!

═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)

Taghor01
Beiträge: 22
Registriert: Mi 27. Sep 2017, 13:42

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von Taghor01 » So 18. Nov 2018, 23:58

Jup das mit dem 2 Forums hab ich ( nach Hinweis ) schon hier erzählt.
Ich habe in beiden Forums geschrieben weil ich am Anfang keine Antworten erhalten habe.
Jo ich weiß das das alles freiwillig ist und bin tierisch dankbar für die Hilfe und Reallife geht vor.
Deswegen brauche ich jetzt auch erstmal Zeit die ganzen anderen Beiträge auszuprobieren.
Und habe deshalb auch "Gelöst" reingeschrieben um das alles zu verarbeiten können.

Vielen Dank

Taghor01
Beiträge: 22
Registriert: Mi 27. Sep 2017, 13:42

Re: [erstmal Gelöst]Zufallszahlen sortieren /Macro geht nicht

Beitrag von Taghor01 » Di 20. Nov 2018, 00:24

Danke
hoffe fertig
Gelöst

habe aus verschiedenen Formeln was zusammengebastelt da ich noch ne Zufallszahl eingefügt hatte.

Antworten