Thema Datum  Von Nutzer Rating
Antwort
18.05.2016 08:38:38 Steffi
NotSolved
Blau mehrf. Auslosung o. Wdh in Gruppen in var. Matrix
18.05.2016 12:32:59 SJ
NotSolved

Ansicht des Beitrags:
Von:
SJ
Datum:
18.05.2016 12:32:59
Views:
677
Rating: Antwort:
  Ja
Thema:
mehrf. Auslosung o. Wdh in Gruppen in var. Matrix

Hallo,

ich habe leider aus dem Roman nicht genau herauslesen können, was du eigentlich möchtest. Die Erstellung der Gruppen und die zufällige Zuweisung könnte hiermit realisiert werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Option Explicit
 
Dim anzahlVergeben As Integer
 
Public Sub generate_groups()
    Dim wks As Worksheet
    Set wks = Worksheets("Tabelle1")    'Tabelle anpassen
     
    Dim SpielerProGruppe As Integer
    SpielerProGruppe = 3                 'Spieler pro Gruppe
     
    Dim intAnzahl As Integer, i As Integer
    intAnzahl = wks.Cells(Rows.Count, 1).End(xlUp).Row
     
    If intAnzahl Mod SpielerProGruppe <> 0 Then
        MsgBox "Anzahl Spieler pro Gruppe gehen nicht auf.", vbInformation
        Exit Sub
    End If
     
    Dim strSpieler() As String
    ReDim strSpieler(intAnzahl - 1)
    Dim strSpielerV() As String
    ReDim strSpielerV(intAnzahl - 1)
    Dim strGruppe() As String
    ReDim strGruppe(SpielerProGruppe - 1)
     
    For i = 1 To intAnzahl
        strSpieler(i - 1) = wks.Cells(i, 1)
    Next i
     
    anzahlVergeben = 0
    Dim j As Integer, k As Integer
    For i = 1 To intAnzahl / SpielerProGruppe
        k = 0
        Call get_gruppe(intAnzahl, strGruppe(), strSpieler(), strSpielerV, SpielerProGruppe)
        For j = 3 To 3 + (SpielerProGruppe - 1)
            wks.Cells(i, j) = strGruppe(k)
            k = k + 1
        Next j
    Next i
End Sub
 
Private Sub get_gruppe(ByVal AnzahlSpieler As Integer, ByRef Gruppe() As String, ByRef Spieler() As String, ByRef SpielerV() As String, ByVal SpielerProGruppe As Integer)
    Dim i As Integer, j As Integer
    For i = 0 To SpielerProGruppe - 1
        Randomize
        j = Int((AnzahlSpieler - 1 + 1) * Rnd + 1)
        Do While isInGroup(SpielerV(), Spieler(j - 1))
            Randomize
            j = Int((AnzahlSpieler - 1 + 1) * Rnd + 1)
        Loop
        Gruppe(i) = Spieler(j - 1)
        SpielerV(anzahlVergeben) = Spieler(j - 1)
        anzahlVergeben = anzahlVergeben + 1
    Next i
End Sub
 
Private Function isInGroup(ByRef SpielerV() As String, ByVal Spieler As String) As Boolean
    Dim i As Integer
    For i = 0 To anzahlVergeben - 1
        If SpielerV(i) = Spieler Then
            isInGroup = True
            Exit Function
        End If
    Next i
    isInGroup = False
End Function

Hierbei ist davon auszugehen, dass alle teilnehmenden Spieler in der Spalte A untereinander stehen. Kein Spielername darf doppelt vorkommen!

Gruß


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
18.05.2016 08:38:38 Steffi
NotSolved
Blau mehrf. Auslosung o. Wdh in Gruppen in var. Matrix
18.05.2016 12:32:59 SJ
NotSolved