von Toxitom » Sa, 19.02.2005 16:30
Hallo Hago,
ich hab zwar immer noch wenig Zeit, aber da hab ich was für dich:
Das Problem ist jetzt noch, daß ich in Tabelle2 an Stelle der ausgeblendeten Zeile eine leere Zeile bekomme. Ich möchte da aber lieber gar keine Zeile.
Du bauchst du zwei Schleifen:
die erste, die alle Inhalte (außer den nicht gewünschten) in einen Array einliest, eine Zeite, die den Array dann in die Zellen schreibt.
Hier ein Beispiel, dass du dann natürlich entsprechend umstricken musst:
Code: Alles auswählen
sub Zufall
Dim aListe1(5), aListe2(5) ' die Listen mit den Namen - Arrays a 6 Elem
Dim i%, n%, zz%
Dim oDoc as object, oTab as Object
oDoc = ThisComponent
oTab = oDoc.sheets.getsheetByIndex(0)
REM Schleife zum auslesen der Namen
For i = 0 to 5
aListe1(i) = oTab.getCellRangeByName("B" & i+2).string
next
REM Zufallszahl erzeugen, und Werte umkopieren
n = 0
Do
zz = CINt(RND() * 5) 'liefert ganze Zufallszahlen von 0 bis 5
if aListe1(zz) <> "###" then
aListe2(n) = aListe1(zz)
aListe1(zz) = "###" 'bereits übernommene Werte markieren
n = n+1
loop until n >= 6
REM die Neue Liste eintragen
for i = 0 to 5
oTab.getCellRangeByName("C" & i+2).string = aListe2(i)
next
end sub
Dieser Code liest Namen aus einer Liste ein, "würfelt" sie durch und gibt sie wieder aus. Das dürfte dein Problem in etwas beschreiben.
Gruss
Thomas
Hallo Hago,
ich hab zwar immer noch wenig Zeit, aber da hab ich was für dich:
[quote]Das Problem ist jetzt noch, daß ich in Tabelle2 an Stelle der ausgeblendeten Zeile eine leere Zeile bekomme. Ich möchte da aber lieber gar keine Zeile. [/quote]
Du bauchst du zwei Schleifen:
die erste, die alle Inhalte (außer den nicht gewünschten) in einen Array einliest, eine Zeite, die den Array dann in die Zellen schreibt.
Hier ein Beispiel, dass du dann natürlich entsprechend umstricken musst:
[code]sub Zufall
Dim aListe1(5), aListe2(5) ' die Listen mit den Namen - Arrays a 6 Elem
Dim i%, n%, zz%
Dim oDoc as object, oTab as Object
oDoc = ThisComponent
oTab = oDoc.sheets.getsheetByIndex(0)
REM Schleife zum auslesen der Namen
For i = 0 to 5
aListe1(i) = oTab.getCellRangeByName("B" & i+2).string
next
REM Zufallszahl erzeugen, und Werte umkopieren
n = 0
Do
zz = CINt(RND() * 5) 'liefert ganze Zufallszahlen von 0 bis 5
if aListe1(zz) <> "###" then
aListe2(n) = aListe1(zz)
aListe1(zz) = "###" 'bereits übernommene Werte markieren
n = n+1
loop until n >= 6
REM die Neue Liste eintragen
for i = 0 to 5
oTab.getCellRangeByName("C" & i+2).string = aListe2(i)
next
end sub[/code]
Dieser Code liest Namen aus einer Liste ein, "würfelt" sie durch und gibt sie wieder aus. Das dürfte dein Problem in etwas beschreiben.
Gruss
Thomas