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.
Sheets(list).Range("A" & lz).Value = Sp_Name 'und <strong>in</strong> dieser den Namen<br />
e<strong>in</strong>tragen<br />
Worksheets(list).Cells(lz, d + 1).Value = it & "(" & j - 1 & ")"<br />
'mit <strong>E<strong>in</strong></strong>trag der Tisch- und Platz-Nr <strong>in</strong> der betreffenden Durchgangsspalte<br />
Else 'falls schon vorhanden<br />
Worksheets(list).Cells(MatchZeile, d + 1).Value = it & "(" & j - 1<br />
& ")"<br />
'<strong>E<strong>in</strong></strong>trag der Tisch- und Platz-Nr <strong>in</strong> der betreffenden Durchgangsspalte<br />
End If<br />
n = n + 1<br />
'Nach <strong>E<strong>in</strong></strong>tragung <strong>in</strong> Durchgangs-Tabelle<br />
Spierzähler um 1 erhöhen<br />
End Sub<br />
Für jeden Tisch wird zunächst e<strong>in</strong>mal e<strong>in</strong>e Überschrift erzeugt (Case 1),<br />
dann <strong>in</strong> der Unterprozedur ZelleMitNameFuellen() die Spielernamen<br />
e<strong>in</strong>getragen (Case 2 To 6) und zum Schluss (Case 7) noch e<strong>in</strong>e Summenformel<br />
notiert, <strong>in</strong> der die Summe der erreichten Punktzahl pro<br />
Tisch berechnet wird (s. auch List<strong>in</strong>g 9). Sie dient lediglich als Kontrolle,<br />
da bekanntermaßen bei e<strong>in</strong>er Plus-M<strong>in</strong>us-Wertung die Gesamtsumme<br />
immer Null se<strong>in</strong> muss.<br />
Sukzessive holt sich die Unterprozedur ZelleMitNameFuellen() aus dem<br />
1.Tabellenblatt (=Tabellenblatt mit dem Namen Auslosung) e<strong>in</strong>e zuvor<br />
zufällig ausgewählte Zelle der Spalte "M"<br />
Sp_Name = Worksheets(1).Range("M" & (Zuf_Nr(d, n))).Value<br />
und überträgt dessen Inhalt – den Spielernamen – <strong>in</strong> die dafür vorgesehene<br />
Zelle der Durchgangstabelle:<br />
Worksheets(d + 2).Cells(zeile, spalte) = Sp_Name<br />
Der gleiche Spieler(name) wird zusätzlich noch <strong>in</strong> Spalte "K" e<strong>in</strong>getragen,<br />
Worksheets(d + 2).Cells(n, 11).Value = Sp_Name<br />
und mit ihm noch <strong>in</strong> der Zelle rechts daneben, also <strong>in</strong> Spalte "L" der<br />
gleichen Zeile e<strong>in</strong>e Formel zur Übernahme der Punkte; somit werden<br />
alle Änderungen <strong>in</strong> der Punktezahl-Zelle des Spielers mit übernommen:<br />
Worksheets(d + 2).Cells(n, 12).Formula = "=R" & zeile & "C" & spalte +<br />
1 & ""<br />
Die beiden Spalten "K" und "L" spielen später bei Übernahme der<br />
Punktzahl e<strong>in</strong>es Spielers <strong>in</strong> das Tabellenblatt Ergebnis noch e<strong>in</strong>e wichtige<br />
Rolle.<br />
H<strong>in</strong>weis 14<br />
Die Spielerliste wurde bereits<br />
zu Beg<strong>in</strong>n des Ma<strong>in</strong>-<strong>Programm</strong>s<br />
Sub Auslosung von<br />
Spalte "F" nach Spalte "M"<br />
kopiert.<br />
H<strong>in</strong>weis 15<br />
s. List<strong>in</strong>g 11 bzw. H<strong>in</strong>weis<br />
13, Seite 36<br />
Im weiteren Verlauf wird <strong>in</strong> dem Tabellenblatt Liste nach dem betreffenden<br />
Spielernamen gesucht:<br />
MatchZeile = Application.Match(Sp_Name, Sheets(list).Range("A:A"),<br />
0)<br />
40