Thema Datum  Von Nutzer Rating
Antwort
06.04.2016 17:14:24 Radizzle
NotSolved
Blau Teilnehmerliste
06.04.2016 19:51:49 Gast70117
NotSolved
07.04.2016 17:15:31 Radizzle
NotSolved

Ansicht des Beitrags:
Von:
Gast70117
Datum:
06.04.2016 19:51:49
Views:
711
Rating: Antwort:
  Ja
Thema:
Teilnehmerliste

Nun Radizzel,

für eine VBA Lösung sind deine Angaben zu dürftig. Deshalb nur als Anregung ZumZum ;)

Option Explicit

Sub TestIt()
Dim rngUsed As Range
Dim lngFirst As Long, lngLast As Long
Dim lngMax As Long, lngChoise As Long

Dim rngList As Range, rngChoise As Range
Dim idx() As Long
Dim varRnd() As Variant
Dim arrRow() As Variant
Dim i As Long, j As Long
Dim blnUnique As Boolean

On Error GoTo fail
   Set rngUsed = ActiveSheet.UsedRange
   lngLast = rngUsed.Rows(rngUsed.Rows.Count).Row
   lngFirst = CLng(InputBox("Erste Zeile der Tabelle = ", "Abfrage"))
   If lngFirst < 1 Or lngFirst >= lngLast Then Err.Raise 513

   lngMax = lngLast - lngFirst + 1
   lngChoise = CLng(InputBox("Wahle Anzahl aus " & CStr(lngMax), "Abfrage"))
   If lngChoise < 1 Or lngChoise >= lngMax Then Err.Raise 513

   Set rngChoise = Application.InputBox("Klicke in Auswahl(Spalte)", _
      "Abfrage Kriterium", , , , , , 8)
   If Intersect(rngChoise, rngUsed) Is Nothing Then Err.Raise 513
   
   Set rngList = Cells(lngFirst, rngChoise.Column).Resize(lngLast, 1)
   ReDim idx(1 To lngChoise)
   ReDim varRnd(1 To lngChoise)
   ReDim arrRow(1 To lngChoise)
   For i = 1 To lngChoise
      Do
         blnUnique = True
         idx(i) = Int(lngMax * Rnd + 1)
         For j = 1 To i - 1
            If idx(i) = idx(j) Then
               blnUnique = False
               Exit For
            End If
         Next j
         If blnUnique = True Then
            Exit Do
         End If
      Loop
      varRnd(i) = rngList.Cells(idx(i), 1)
      arrRow(i) = rngList.Cells(idx(i), 1).Row
    Next i

   Select Case MsgBox("ausgewählt:" & Chr(10) & Join(varRnd, Chr(10)), vbYesNo, _
         "Soll verteilt werden?")
      Case vbYes
         
         For i = LBound(arrRow) To UBound(arrRow)
            rngUsed.Rows(arrRow(i)).Font.Bold = True
            rngUsed.Rows(arrRow(i)).Font.ColorIndex = 3
            rngUsed.Rows(arrRow(i)).Copy rngUsed.Cells(1).Offset(lngLast + 1 + i)
            rngUsed.Rows(arrRow(i)).ClearContents
         Next i
         
         rngUsed.Font.Italic = True
         
         Set rngUsed = ActiveSheet.UsedRange
         lngLast = rngUsed.Rows(rngUsed.Rows.Count).Row
         For j = lngLast To 1 Step -1
            If Application.CountA(Cells(j, 1).EntireRow) = 0 Then Rows(j).Delete
         Next j
   End Select
   
On Error GoTo 0
fail:
Select Case Err.Number
   Case 0
   Case 13, 513, 424
      Call MsgBox("Fehlerhafte Eingabe", vbOKOnly + vbCritical, "Abbruch")
End Select
End Sub

Und: Datensicherung nicht vergessen!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.04.2016 17:14:24 Radizzle
NotSolved
Blau Teilnehmerliste
06.04.2016 19:51:49 Gast70117
NotSolved
07.04.2016 17:15:31 Radizzle
NotSolved