30.09.2013 Aufrufe

VBA – Programmierung mit Excel Grundlagen

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

• Die Funktionen der übrigen Schaltflächen <strong>–</strong> siehe weiter unten im Text.<br />

Die Initialisierungsprozedur der Form:<br />

Private Sub UserForm_Initialize()<br />

cmbZiel.RowSource = "Daten!A1:A12"<br />

With cmbPreis<br />

.ColumnCount = 2<br />

.RowSource = "Daten!A1:B12"<br />

.TextColumn = 2<br />

End With<br />

cmbPers.RowSource = "Daten!D1:D10"<br />

txtDatum.Text = Date<br />

cmdBuch.Visible = False<br />

cmdLösch.Visible = False<br />

Seite 110<br />

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select<br />

Dialoge (Teil II)<br />

If ActiveCell.Row = 1 Then<br />

txtNr.Text = "0001"<br />

Else<br />

txtNr.Text = Cells(ActiveCell.Row, 1).Value + 1<br />

End If<br />

Cells(ActiveCell.Row + 1, 1).Activate<br />

Selection.NumberFormat = "0000"<br />

End Sub<br />

füllt die COMBOBOXES <strong>mit</strong> Werten aus der Tabelle DATEN.<br />

Die Box für den Preis wird <strong>mit</strong> .COLUMNCOUNT zweispalig definiert wird. Mit .TEXTCOLUMN<br />

wird festgelegt aus welcher der Spalten der Wert für die TEXT <strong>–</strong> Eigenschaft der ComboBox<br />

genommen werden soll.<br />

Mit<br />

txtDatum.Text = Date<br />

cmdBuch.Visible = False<br />

cmdLösch.Visible = False<br />

wird das Tagesdatum eingesetzt und die Schaltflächen Buchen und Löschen „versteckt“.<br />

❢ Die Zeile<br />

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select<br />

er<strong>mit</strong>telt über .SpecialCells die letzte belegte Zelle des aktiven Tabellenblattes.<br />

Die nachfolgenden Anweisungen belegen in Abhängigkeit davon, in welcher Zeile die letzte<br />

belegte Zelle gefunden wurde das Feld <strong>mit</strong> der Buchungsnummer entweder <strong>mit</strong> einer 0001<br />

(leere Tabelle <strong>mit</strong> Überschriftenzeile vorgefunden) oder <strong>mit</strong> einem Wert, der um 1 höher ist<br />

als die letzte vorgefundene Buchungsnummer.<br />

Abschließend wird die Tabelle für eine neue Buchung vorbereitet <strong>–</strong> die Zelle unter der letzten<br />

Buchungsnummer wird aktiviert und <strong>mit</strong> einem vierstelligen numerischen Format belegt.<br />

Ist das Formular ausgefüllt, wird über die Schaltfläche Berechnen der Gesamtpreis<br />

ausgerechnet:<br />

Private Sub cmdRechnen_Click()<br />

If chkBuch.Value = True Then<br />

txtPreis.Text = Val(cmbPreis.Text) * Val(cmbPers.Value) * 0.95<br />

Else<br />

txtPreis.Text = Val(cmbPreis.Text) * Val(cmbPers.Value)<br />

End If<br />

cmdBuch.Visible = True<br />

cmdLösch.Visible = True<br />

End Sub<br />

In Abhängigkeit davon, ob Rabatt gewährt werden soll oder nicht, werden die<br />

entsprechenden Multiplikationen (Einzelpreis * Personenzahl) <strong>mit</strong> 0,95 oder voll berechnet.<br />

Gleichzeitig werden die Schaltflächen Buchen und Löschen aktiviert.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!