Namen aus anderen Tabellenblatt
17.04.2025 22:39:12
UdPa
Ich habe diesen Code für Zufallslosung, (Tabellenblatt"Losen" Namen gebe ich ab B2:B25 ein) der funktioniert eigentlich gut, nun möchte ich aber aus optischen Gründen, die Namen die gelost werden sollen von einem anderen Tabellenblatt ("Teilnehmer" ab R2:R25) in das tabellenblatt "Losen" übernehmen,mit =WENN(Teilnehmer!R2="";"Freilos";Teilnehmer!R2), nur der Code läuft dann nicht mehr. Wie kann man das Fachgerecht machen?
Vielen Dank für eure Hilfe
Hier der Code:
Sub ZufallsNamen()
Dim rng As Range
Dim iRowL As Integer, iCell As Integer, iCol As Integer
Dim iRow As Integer, iAct As Integer
Dim sName As String
' Inhalte in Spalten D:G löschen
Columns("D:G").ClearContents
' Gruppennamen in Kopfzeile ab Spalte D einfügen
For iCol = 1 To 4
Cells(2, iCol + 3) = "Gruppe" & CStr(iCol) ' Ab Spalte D beginnen
Next iCol
Randomize
iRowL = Range("B2").CurrentRegion.Rows.Count ' Bereich beginnt ab B2
iRow = 3
iCol = 4 ' Gruppen beginnen ab Spalte D
For iCell = 1 To iRowL
iAct = Int((iRowL * Rnd) + 2) ' Zufällige Zeile ab B2
sName = Cells(iAct, 2).Value ' Namen aus Spalte B lesen
Set rng = Range("D2").CurrentRegion.Find( _
what:=sName, lookat:=xlWhole, LookIn:=xlValues)
Do While Not rng Is Nothing
iAct = Int((iRowL * Rnd) + 2) ' Zufällige Zeile ab B2
sName = Cells(iAct, 2).Value ' Namen aus Spalte B lesen
Set rng = Range("D2").CurrentRegion.Find( _
what:=sName, lookat:=xlWhole, LookIn:=xlValues)
Loop
Cells(iRow, iCol) = sName ' Namen einfügen
iCol = iCol + 1
If IsEmpty(Cells(2, iCol)) Then
iRow = iRow + 1
iCol = 4
End If
Next iCell
End Sub
Anzeige