Zufällige auswahl

Bild

Betrifft: Zufällige auswahl
von: M4rkus
Geschrieben am: 19.11.2003 15:15:53

Hallo,

ich benötige ein ganz kleines VBA Progrämmchen!!

hab aber keine
Ahnung in vba!!!

also ich hab in Zeile A1 - A40 Namen stehen!!

nun möchte ich, für ne Weihnachtsfeier, mithilfe von vba die Namen die in a stehen nach b kopieren allerdings in zufälliger Reihenfolge!! und mit der Bedingung, dass kein Name genau hinter in die gleiche Zeile kommt wie er stand sonnst müsste ja jemand mit sich selbst spielen(:-) )

also ich hoffe ihr habt es verstanden!!

Kann mir wer helfen?!?

nochmals etwas genauer!!

hab mal ein Roulettespiel mit VBA-gemacht das war in so ne Script für VBA drinnen, da wurde auch ne Zufalszahl ermittelt, des müsste doch gehen dass er von a1-a40 zufällig eine Zelle auswählt und diese dann in b1 setzt dann die nächste auswählt und diese in b2 setzt und das ganze sooft wiederholt bis jeder Name der in a1-a40 stand nun in b1-b40 steht

mit der einzigen Vorraussetzung, dass jeder Name nur einmal ausgewählt wird und nicht an die gleiche Stelle in b kommt wie er in a steht!!

Ich bitte um Hilfe

allerfreundlichste Grüße

Markus

Bild


Betrifft: AW: Zufällige auswahl
von: Michael Brueggemann
Geschrieben am: 19.11.2003 15:49:26

Hallo M4rkus,

wie waere es damit:


Sub Paare_finden()
    Dim wks As Worksheet
    Dim i, intZeile As Integer
    Dim strVerwendet As String
    
    ' Zeiger auf gewuenschtes Worksheet setzen
    Set wks = ThisWorkbook.Sheets("Tabelle1")
    
    ' Zielbereich initialisieren
    wks.Range("B1:B40").ClearContents
    
    ' Zeilenzaehler fuer Zielbereich initialisieren
    intZeile = 1
    
    ' erste Zufallszahl generieren
    Randomize
    
    ' Schleife durchlaufen, so lange nicht alle Zellen im Zielbereich gefuellt
    Do While IsEmpty(wks.Cells(40, 2))
    
        ' neue Zufallszahl zwischen 1 und 40 generieren
        i = Int((40 * Rnd) + 1)
        
        ' wenn sich Wert in der gleichen Zeile von Quell- und Zielspalte
        ' unterscheiden, und die Zufallszahl nicht bereits verwendet wurde, dann
        If wks.Cells(intZeile, 1).Value <> wks.Cells(i, 1).Value And _
                InStr(1, strVerwendet, "$" & Format(i, "00")) = 0 Then
                
            ' Wert aus Quellzelle in Zielzelle uebernehmen
            wks.Cells(intZeile, 2).Value = wks.Cells(i, 1).Value
            
            ' Zufallszahl in Vergleichsstring uebernehmen, um Vorkommen
            ' spaeter pruefen zu koennen
            strVerwendet = strVerwendet & "$" & Format(i, "00")
            
            ' Zeilenzaehler fuer Zielspalte hochzaehlen
            intZeile = intZeile + 1
        
        End If
        
    Loop
End Sub



CIAO
Michael


Bild

Beiträge aus den Excel-Beispielen zum Thema " Zufällige auswahl"