19.11.2014, 15:20
Hallo @all Lesende,
zum besseren Verständnis angefügte Datei öffnen
CEF-Beispiel_1411_19.xlsm (Größe: 107,15 KB / Downloads: 37)
Mehrere Frames liegen vor in der MultiPage2 im Userform 1
Pro Page ein Spielframe
Jeder Frame ist ein Spiel mit unterschiedlicher Anzahl an Comboboxen
Frame1 hat 2 Cbo's
Frame2 hat 3 Cbo's
Frame3 hat 3 Cbo's
Frame4 hat 5 Cbo's
Frame5 hat 10 Cbo's
usw.
Alle Comboboxen (Cbo) werden durch eine Anweisung befüllt:
Anstelle für jedes Spiel (Frame) jeder 1sten Combobox immer die gleiche 1ste Wurfspalte E (Wurf 1) zuzuweisen, denke ich mir das eventuell nach befüllen der ersten Spalten (immer gleiche Spaltenzuweisungen) Datum; Uhrzeit; Spielname und Keglername, die nächstleere Zelle in der horizontalen Zeile ausgehend von Spalte E (Wurf 1) bis X (maximal 20 Wurf) befüllt wird.
Ohne den Code wegen ca.27 Spielen in die länge zu ziehen.
Nun zur Frage:
Kann man den Code vielleicht so in etwa schreiben oder mit Variabeln erstellen?
Frame1 "2 auf die Vollen" beinhaltet 2 Comboboxen
Frame2 "grosse Hausnummer" 3 Comboboxen
Frame3 "kleine Hausnummer" 3 Comboboxen
Frame4 "Bingo" 5 3 Comboboxen
alle anderen wertzuweisende befinden sich direkt auf der Userform
Combobox "Datum"
Label "Uhrzeit"
Combobox "Spielauswahl"
Combobox "Kegler"
Kreative Ideen von euch VBA-Assen sind sehr willkommen
Danke vorab
zum besseren Verständnis angefügte Datei öffnen

Mehrere Frames liegen vor in der MultiPage2 im Userform 1
Pro Page ein Spielframe
Jeder Frame ist ein Spiel mit unterschiedlicher Anzahl an Comboboxen
Frame1 hat 2 Cbo's
Frame2 hat 3 Cbo's
Frame3 hat 3 Cbo's
Frame4 hat 5 Cbo's
Frame5 hat 10 Cbo's
usw.
Alle Comboboxen (Cbo) werden durch eine Anweisung befüllt:
Code:
Sub rechne1()
Dim i As Integer, f As Long, g As Long, h As Long, j As Long, k As Long, l As Long, m As Long, n As Long, o As Long, q As Long
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "9" Then
' Me.Txt_Wurf_Sum = Me.Txt_Wurf_Sum * 1 + 1
q = q + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "8" Then
o = o + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "7" Then
n = n + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "6" Then
m = m + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "5" Then
l = l + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "4" Then
k = k + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "3" Then
j = j + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "2" Then
h = h + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "1" Then
g = g + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "0" Then
' Me.Txt_Wurf_Sum = Me.Txt_Wurf_Sum * 1 + 1
f = f + 1
End If
Next i
Me.LblZ_0 = f
Me.LblZ_1 = g
Me.LblZ_2 = h
Me.LblZ_3 = j
Me.LblZ_4 = k
Me.LblZ_5 = l
Me.LblZ_6 = m
Me.LblZ_7 = n
Me.LblZ_8 = o
Me.LblZ_9 = q
End Sub
Sub rechne2()
Dim i As Integer, a As Long, b As Long, c As Long, d As Long, e As Long
Me.Txt_Wurf_Summe = 0 '""
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) Then
Me.Txt_Wurf_Summe = Me.Txt_Wurf_Summe * 1 + Me.Controls("Combobox" & i).Value
End If
Next i
For i = 1 To 36
If Not IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "Kalle" Then ' x
a = a + 1
End If
Next i
For i = 1 To 36
If Not IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "Stina" Then ' s
Me.Txt_Wurf_Summe = Me.Txt_Wurf_Summe * 1 + 3
b = b + 1
End If
Next i
For i = 1 To 36
If Not IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "Kackstuhl" Then ' y
Me.Txt_Wurf_Summe = Me.Txt_Wurf_Summe * 1 + 4
c = c + 1
End If
Next i
For i = 1 To 36
If Not IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "Kranz" Then ' k
Me.Txt_Wurf_Summe = Me.Txt_Wurf_Summe * 1 + 8
d = d + 1
End If
Next i
For i = 1 To 36
If IsNumeric(Me.Controls("Combobox" & i).Value) And Me.Controls("Combobox" & i).Value = "9" Then
e = e + 1
End If
Next i
Me.Label1 = a
Me.Label2 = b
Me.Label3 = c
Me.Label4 = d
Me.Label5 = e
End Sub
Ohne den Code wegen ca.27 Spielen in die länge zu ziehen.
Nun zur Frage:
Kann man den Code vielleicht so in etwa schreiben oder mit Variabeln erstellen?
Frame1 "2 auf die Vollen" beinhaltet 2 Comboboxen
Frame2 "grosse Hausnummer" 3 Comboboxen
Frame3 "kleine Hausnummer" 3 Comboboxen
Frame4 "Bingo" 5 3 Comboboxen
alle anderen wertzuweisende befinden sich direkt auf der Userform
Combobox "Datum"
Label "Uhrzeit"
Combobox "Spielauswahl"
Combobox "Kegler"
Kreative Ideen von euch VBA-Assen sind sehr willkommen
Danke vorab