Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Wird nun beispielsweise die Zelle "B88" rechtsgeklickt und ist die Zelle<br />
"A88" leer, so ist wiederum nichts zu tun: If Target.Offset(0, -1).Value =<br />
"" Then Exit Sub. Gibt es aber <strong>in</strong> Zelle "A88" e<strong>in</strong>en Teilnehmere<strong>in</strong>trag,<br />
so müssen zwei Fälle unterschieden werden: entweder die Zelle "B88"<br />
ist bereits mit e<strong>in</strong>em Häkchen markiert und mit grüner H<strong>in</strong>tergrundfarbe<br />
versehen, d.h. der Teilnehmer ist bereits aufgenommen und soll<br />
jetzt wieder gelöscht werden, oder die Zelle ist nicht markiert und der<br />
Teilnehmer aus "A88" muss noch <strong>in</strong> die Teilnehmerliste, also <strong>in</strong> Spalte<br />
"F" aufgenommen werden.<br />
Fall A: <strong>E<strong>in</strong></strong> Teilnehmer wird neu aufgenommen, Beispiel "Tanja Evers"<br />
durch Doppelklick <strong>in</strong> "B13"<br />
Es wird zunächst nach der ersten freien Zelle <strong>in</strong> Spalte "F" Ausschau<br />
gehalten For Each rng In Worksheets(1).Range("F:F").Cells If IsEmpty(rng)<br />
und die entsprechende Zeilennummer <strong>in</strong> der Variablen lz (steht<br />
für leerzelle) gespeichert lz = rng.Row. Der Spielername "Tanja Evers"<br />
wird aus "A13" <strong>in</strong> der Variablen rng zwischengespeichert rng = Target.Offset(0,<br />
-1).Value, und die - nur <strong>in</strong>tern vorgehaltene - Spielernummer<br />
<strong>in</strong> der Zelle "D13" (nicht sichtbar im Tabellenblatt, da für den Anwender<br />
ohne Belang) gemerkt (Target.Offset(0, 2).Value = lz - 1), um<br />
die Möglichkeit e<strong>in</strong>es Löschvorgangs nicht zu verbauen. Anschließend<br />
werden lediglich noch die Zellen "B13" und "C13" mit e<strong>in</strong>em Häkchen<br />
Target.Value = Chr(252) sowie der grünen Füllfarbe Target.Interior.ColorIndex<br />
= 4 versehen und es werden e<strong>in</strong>ige weitere Zellen<br />
("I8", "I9" und "I10" für die spätere Auslosung bereits mit Werten<br />
gefüllt, und zwar enthalten<br />
‣ "I8" die Anzahl der Spieler (bisherigen Wert um 1 erhöhen)<br />
Range("I8").Value = Range("I8").Value + 1<br />
‣ "I9" die Anzahl der benötigten Tische (= Anzahl der Spieler dividiert<br />
durch 4 als Integer-Wert)<br />
Range("I9").Value = Range("I8").Value \ 4<br />
‣ "I10" die Anzahl der benötigten 5er Tische (als Restwert der Division<br />
durch 4)<br />
Range("I10").Value = Range("I8").Value Mod 4<br />
H<strong>in</strong>weis 6<br />
Chr (252) entspricht dem<br />
Zeichen "ü" und liefert <strong>in</strong> der<br />
Schriftart W<strong>in</strong>gd<strong>in</strong>gs das<br />
Häkchen<br />
Fall B: <strong>E<strong>in</strong></strong> bereits aufgenommener Teilnehmer wird wieder aus der<br />
Liste entfernt, Beispiel "Gerd Förster" (etwa weil man sich "verklickt"<br />
hat)<br />
In diesem Fall ist die Zelle "B18" grün markiert: If Target.Interior.ColorIndex<br />
= 4. Der Spieler muss nun wieder aus der Liste<br />
<strong>in</strong> Spalte "F" gelöscht werden.<br />
19