09.02.2014 Aufrufe

Ein VBA-Programm in Excel

Ein VBA-Programm in Excel

Ein VBA-Programm in Excel

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!