Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallsfunktion erweitern - Hilfe!

Zufallsfunktion erweitern - Hilfe!
Henrik
Hallo!
Ich habe folgende Sub:

Sub Zufall()
Dim anz As Integer
'Letzte Zeile rausfinden
Dim loLetzte As Long
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
anz = loLetzte
Dim i As Integer, fFeld() As Long, iTemp As Integer, iZ As Integer
ReDim fFeld(anz)
For i = 1 To anz
fFeld(i) = i
Next i
For i = anz To 1 Step -1
Randomize Timer
iZ = Int((i * Rnd) + 1)
iTemp = fFeld(iZ)
fFeld(iZ) = fFeld(i)
fFeld(i) = iTemp
Next i
For i = 1 To anz
'code ausführen
'Userform.show usw......
Next i
End Sub

Super Funktion, sie ermittelt eine zufällige Zahl und wiederholt keine in dem Bereich von 1 bis anz - bis alle einmal durch sind.
Ich möchte jetzt aber einen Bereich ausschließen, nur Zeilen die rot sind, sollen im Zufallsgenerator übernommen werden.
Also etwa so:

For i = 1 To anz
if Cells(i,1).Hintergrundfarbe = rot then
fFeld(i) = i
end if
Next i
usw...
Gruß Henrik

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zufallsfunktion erweitern - Hilfe!
19.04.2010 09:10:14
David
Hallo Henrik,
Cells.Interior.ColorIndex = xx sollte hier zutreffen. Die Nummer der Farbe ermittelst du am besten mit msgbox range("F19").Interior.ColorIndex bei dem du natürlich auf eine entsprechende Zelle verweist.
Gruß
David
AW: Zufallsfunktion erweitern - Hilfe!
19.04.2010 10:16:41
Henrik
Danke für die schnelle Antwort,
ich merke gerade dass ich mich falsch ausgedrückt habe, und zwar geht es mir nicht um die Hintergrundfarbensyntax sondern vielmehr um die Funktion ans sich, welche nur den Bereich 1 bis anz auswertet aber wenn ich einzelne Zahlen (=Zeilen) ausschließen will dann, geht das nicht mit dieser Funktion.
Ich werd mal noch ein wenig rumprobieren.
Gruß Henrik
Anzeige
AW: Zufallsfunktion erweitern - Hilfe!
19.04.2010 10:27:30
David
Hallo Henrik,
warum nicht?
     For i = 1 To anz
If Not Cells(i,1).Interior.Colorindex = 3 Then fFeld(i) = i
Next i
Gruß
David
AW: Zufallsfunktion erweitern - Hilfe!
19.04.2010 13:38:44
Henrik
Wie cool, danke!
Manchmal sieht man den Wald vor lauter Bäumen nicht!!!
Noch ein goto eingefügt und schon geht es.
Hier noch mal der Code fürs Archiv:

Sub Zufall()
Load Abfrage
Dim anz As Integer
'Letzte Zeile rausfinden
Dim loLetzte As Long
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
anz = loLetzte
Dim i As Integer, fFeld() As Long, iTemp As Integer, iZ As Integer
ReDim fFeld(anz)
For i = 1 To anz
If Not Cells(i, 1).Font.Color = 192 Then fFeld(i) = i
Next i
For i = anz To 1 Step -1
Randomize Timer
iZ = Int((i * Rnd) + 1)
iTemp = fFeld(iZ)
fFeld(iZ) = fFeld(i)
fFeld(i) = iTemp
Next i
For i = 1 To anz
lösung = fFeld(i)
If lösung = 0 Then GoTo next_i      'Das ist es!
If stoppen = True Then
Exit Sub
End If
Abfrage.Show
'usw......
next_i:
Next i
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige