09.02.2018, 14:28 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2018, 15:06 von BoskoBiati.)
Hi,
Klasse, nur die bunten Felder haben nicht gepasst. Das habe ich angepasst:
Code:
Private Sub worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean) Dim sn Dim j As Long Dim y As Long Dim c00 As String Dim jj As Long Dim loC As Long Dim loB As Long Dim arrzahlen Dim arrzahlen2 Dim sp If Target.Address <> "$M$2" Then Exit Sub cancel = True Tabelle1.DrawingObjects.Delete If Tabelle1.Shapes.Count = 0 Then sn = Array(0, 5, 11, 18, 26, 35, 43, 50, 56, 61, 70) For j = 0 To 60 y = Application.Match(j, sn, 1) - 1
With Tabelle1.Shapes c00 = "C_" & Format(j, "00") With .AddShape(10, 259 + IIf(y < 5, 0, 8 + (y - 6) * 5) - IIf(y < 5, y, 8 - y) * 55 / 2 + (j - sn(y)) * 63, 30 + y * 53, 70, 0.885 * 69) .Name = c00 .Rotation = 27 .LockAspectRatio = True End With With .AddLabel(1, Tabelle1.Shapes(c00).Left + 6, Tabelle1.Shapes(c00).Top + 15, 58, 33).TextFrame .Parent.Name = "T_" & Format(j, "00") .AutoSize = False .MarginLeft = 0 .MarginRight = 0 .MarginBottom = 0 .MarginTop = 0 .VerticalAlignment = -4108 .HorizontalAlignment = -4108 .Characters.Font.Color = RGB(0, 0, 0) End With End With Next End If
sn = Tabelle2.Cells(1).CurrentRegion y = Abs(Int(6 * Rnd() - 0.01)) + 1 For j = 1 To UBound(sn) If sn(j, y) = "" Then Exit For Next
For jj = 0 To 60 Tabelle1.Shapes("C_" & Format(jj, "00")).Fill.ForeColor.RGB = RGB(220, 220, 220) With Tabelle1.Shapes("T_" & Format(jj, "00")).TextFrame.Characters .Text = sn(Abs(Int((j - 2) * Rnd() - 0.01)) + 2, y) .Font.Color = RGB(0, 0, 0) End With Next
With Tabelle1 .[N1:N61] = "=rand()" sp = [index(rank(T_OLE!N1:N61,T_OLE!N1:N61)-1,)] .Range("P1:P61") = sp .[N1:N61].ClearContents End With For j = 1 To 12 Tabelle1.Shapes("C_" & Format(sp(j, 1), "00")).Fill.ForeColor.RGB = RGB(0, 0, 255) Tabelle1.Shapes("T_" & Format(sp(j, 1), "00")).TextFrame.Characters.Font.Color = RGB(255, 255, 255) Next For j = 13 To 16 Tabelle1.Shapes("C_" & Format(sp(j, 1), "00")).Fill.ForeColor.RGB = RGB(200, 100, 0) Tabelle1.Shapes("T_" & Format(sp(j, 1), "00")).TextFrame.Characters.Font.Color = RGB(255, 255, 0) Next Tabelle1.Shapes("C_" & Format(sp(17, 1), "00")).Fill.ForeColor.RGB = RGB(100, 100, 100) Tabelle1.Shapes("T_" & Format(sp(j, 1), "00")).TextFrame.Characters.Font.Color = RGB(0, 0, 0)
End Sub
Makro wurde 2x verändert!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
09.02.2018, 17:36 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2018, 17:37 von BoskoBiati.)
Hi,
Zitat:Eine neue 'Glaskugelbedingung' ?
siehe Beitrag #16
da sp aus zufällig angeordneten Zahlen zwischen 1 u. 61 besteht, nehme ich die ersten 12 und mache die entsprechenden Felder blau, die nächsten 4 braun und das letzte grau. Das passt wunderbar.
Außerdem muß ich eines der Themen aus der Liste zufällig auswählen, nach dem richtet sich die Belegung der Felder. Du hast die Zuordnung der Zahlen aus der Liste zu den Begriffen gelöscht. Die waren aber von Thema zu Thema unterschiedlich. Manche Zahlenbereiche waren größer, andere kleiner, was eine Wichtung bei Zufallszahlen bewirkt.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
09.02.2018, 18:27 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2018, 18:27 von BoskoBiati.)
Hi,
ja, so habe ich es auch mittlerweile in meinem Code stehen. Es waren zuerst 9, später dann 12 blaue Felder. Das ist aber nur eine Marginalie, am System ändert sich nichts.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Zitat:Die waren aber von Thema zu Thema unterschiedlich. Manche Zahlenbereiche waren größer, andere kleiner, was eine Wichtung bei Zufallszahlen bewirkt.
Und das gerade versteh ich nicht.
Basiert auf zufall wird Gruppe 1,2,3,4,5 oder 6 gewählt. Dann werden die 'items' der gewählte Gruppe basiert auf Zufall den 61 'Felder' zugewiesen ?
Du siehst also, dass die Zahlenbereiche (von denen ich hier nur die Startzahl stehen habe) unterschiedlich sind. Die Wahrscheinlichkeiten für das Auftreten der einzelnen Begriffe sind also unterschiedlich hoch. Das muß einfach im Code implementiert sein.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.