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.

Beispielanwendung 1<br />

Nachließend wird in dem kopierten Datenbereich die letzte beschriebene Zelle der Spalte A<br />

der letzte eingetragene Artikel) er<strong>mit</strong>telt, um die Datenkopie auf den tatsächlich<br />

beschriebenen Datenbereich beschränken zu können. Die Zeilen und Spaltenindizes dieser<br />

Zelle werden für spätere Verwendung den Variablen A und B zugewiesen:<br />

Range("A1").Select<br />

ActiveSheet.Cells(Rows.Count, ActiveCell.Column).Select<br />

If IsEmpty(ActiveCell) Then<br />

ActiveCell.End(xlUp).Select<br />

A = ActiveCell.Row<br />

B = ActiveCell.Column<br />

End If<br />

Der übriggebliebene kopierte (leere) Datenbereich wird der Formate beraubt (Formeln und<br />

Farbe) und anschließend die Datenmaske für die Korrektur aufgerufen. Da hier der zu<br />

korrigierende Datenbereich schon gefüllt ist, muß keine evtl. Fehlermeldung erwartet und<br />

daher auch nicht, wie im Falle der Datenerfassung, unterdrückt werden (der Programmablauf<br />

wird für die Dauer der Arbeit <strong>mit</strong> der Datenmaske unterbrochen):<br />

Range(Cells(A + 1, B), Cells(A + 9, B + 1)).ClearFormats<br />

Range("A2").Select<br />

ActiveSheet.ShowDataForm<br />

Abbildung 29: Datenkorrektur (nur eingetragene Daten sichtbar)<br />

Nach Abschluß der Korrektur (Schaltfläche Schließen der Datenmaske) wird <strong>mit</strong> Hilfe der<br />

o.g. Variablen A und B der Datenbereich aus dem Korrekturblatt in das Originalblatt kopiert:<br />

Range(Cells(A, B), Cells(1, B + 1)).Select<br />

Application.CutCopyMode = False<br />

Selection.Copy<br />

Sheets("Auswertung").Select<br />

Range("A1").Select<br />

ActiveSheet.Paste<br />

Das Korrekturblatt wird gelöscht (die Systemmeldungen werden davor in schon oben<br />

beschriebener Art abgeschaltet, danach wieder eingeschaltet) und im verbleibenden Blatt<br />

Auswertung wird als rein optische Hervorhebung für den Anwender die Zelle C16<br />

(Gesamtsumme) aktiviert:<br />

Sheets("Korrektur").Select<br />

Application.DisplayAlerts = False<br />

ActiveWindow.SelectedSheets.Delete<br />

Application.DisplayAlerts = True<br />

Range("C16").Select<br />

End Sub<br />

Für die „Online <strong>–</strong> Hilfe“ (hier absichtlich in Anführungsstrichen geschrieben, weil es in dieser<br />

Form nur eine beabsichtigte „Schnell <strong>–</strong> Notlösung“ ist) wurde ein eigenes Tabellenblatt <strong>mit</strong><br />

einem Textfeld als Inhalt konzipiert. Dieses Tabellenblatt bleib solange unsichtbar, bis die<br />

Schaltfläche Hilfe betätigt wird:<br />

Seite 91

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!