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