09.02.2014 Aufrufe

Ein VBA-Programm in Excel

Ein VBA-Programm in Excel

Ein VBA-Programm in Excel

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!