Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
gänge) und 4 (= Anzahl Runden) versehen werden können, ist dies bei<br />
der Anzahl der Tische nicht möglich; die Anzahl der Tische ist abhängig<br />
von der Anzahl der Teilnehmer und muss daher per Quellcode-<br />
<strong>Programm</strong>ierung berechnet werden:<br />
Private Sub userform_<strong>in</strong>itialize()<br />
Dim AnzSp As Integer<br />
Dim MaxAnzTi As Integer<br />
...<br />
If Worksheets(1).Range("M1").Value = "" Then<br />
AnzSp = 0<br />
Else<br />
AnzSp = Range Worksheets(1).Range("I8").Value 'Anzahl Spieler<br />
End If<br />
List<strong>in</strong>g 4<br />
Sub<br />
userform_<strong>in</strong>itialize()<br />
Vorbelegung Anzahl der<br />
Tische <strong>in</strong> TextBox3 mit dem<br />
maximal möglichen Wert<br />
MaxAnzTi = AnzSp \ 4<br />
Sp<strong>in</strong>Button3.Value = MaxAnzTi<br />
TextBox3.Value = Sp<strong>in</strong>Button3.Value<br />
Sp<strong>in</strong>Button1.M<strong>in</strong> = Worksheets(1).Range("I11").Value + 1<br />
End Sub<br />
Im nächsten Schritt geht es darum, e<strong>in</strong> Makro für die Änderung der<br />
Tischanzahl zu schreiben. Da die Änderung über das nebenstehende<br />
Drehfeld Sp<strong>in</strong>Button3 erfolgen soll, ist für die TextBox3 selber ke<strong>in</strong>e<br />
Codierung notwendig, wohl aber für das nebenstehende Drehfeld. Führen<br />
wir zunächst e<strong>in</strong>en Doppelklick auf die Schaltfläche Sp<strong>in</strong>Button3 <strong>in</strong><br />
der Userform StartAuslosung aus, generiert <strong>Excel</strong> wiederum automatisch<br />
e<strong>in</strong>en leeren <strong>Programm</strong>rahmen, diesmal mit der Option Change:<br />
Private Sub Sp<strong>in</strong>Button3_Change()<br />
End Sub<br />
In diesem Rahmen werden nun die gewünschten Anpassungen bzw.<br />
Berechnungen vorgenommen (s. auch List<strong>in</strong>g 16, Seite 43):<br />
Private Sub Sp<strong>in</strong>Button3_Change()<br />
Dim Max_AnzSp As Integer<br />
Dim AnzSp As Integer<br />
Dim i As Integer<br />
Dim MaxAnzTi As Integer<br />
Dim M<strong>in</strong>AnzTi As Integer<br />
Dim Anz5erTi() As Integer<br />
Dim Anz4erTi() As Integer<br />
Dim Anz_Tische() As Integer<br />
'Max-Anzahl Spieler alle Durchgänge<br />
'Anzahl Spieler <strong>in</strong> e<strong>in</strong>em Durchgang<br />
'Anzahl Tische Maximum<br />
'Anzahl Tische M<strong>in</strong>imum<br />
'Anzahl 5er-Tische<br />
'Anzahl 4er-Tische<br />
'Anzahl benötigter Tische <strong>in</strong>sgesamt<br />
List<strong>in</strong>g 5<br />
Sub<br />
Sp<strong>in</strong>Button3_Change()<br />
If Worksheets(1).Range("M1").Value = "" Then<br />
AnzSp = 0<br />
Else<br />
AnzSp = Worksheets(1).Range("I8").Value 'Anzahl Spieler<br />
End If<br />
27