Kursabschnitt 8

Einstieg in die VBA-Programmierung: Toolerstellung und Prozessautomatisierung

Kursabschnitt 8

Einstieg in die VBA-Programmierung:
Toolerstellung und Prozessautomatisierung


Excel Programmierung von Grund auf erklärt!

1) Lästige Routinearbeiten automatisieren und jede Menge Zeit einsparen
2) Mit selbst erstellten Excel Tools glänzen
3) Bestehende Makros verstehen und anzupassen
4) Alle wichtigen Bausteine des Excel-Objektmodell und von VBA 
5) Übersichtliche Kursstruktur und daher auch als Nachschlagewerk/Toolbox geeignet

In diesem Kursabschnitt lernst Du, wie Du mit Excel programmierst.   

Dazu gehört nicht nur das Aufnehmen und Bearbeiten von Makros, sondern auch das Schreiben von VBA Code.   

Dadurch wirst Du in der Lage sein, kleine Programme zu erstellen, die dir helfen Teile deiner Arbeit zu automatisieren.         

Wenn Du also schon immer mal VBA loslegen wolltest, oder bereits VBA arbeitest, Dir aber noch nie richtig die Grundlagen angeschaut hast, dann würde ich mich freuen Dich in dem Kurs begrüßen zu dürfen.              

Viele Grüße
Daniel Kogan

Lehrplan

  • 1

    Einleitung

    • Skript und Begleitdateien

    • Was ist VBA?

    • Makros aufnehmen und abspielen

    • Visual Basic Editor (VBE)

    • Absolute vs. relative Verweise

    • Übung1: Makrorekorder - Data Clean Up

    • Übung1: Auflösung

  • 2

    Excel Objektmodell & VBA - Einleitung

    • Objektmodell und VBA

    • Objekthierarchie

    • Referenzieren & Verkürzte Schreibweisen (With - End With)

  • 3

    Zelleigenschaften: (Range & Cell & Interior)

    • Übersicht

    • Value & Font - Werte in Zellen schreiben und Schriftart anpassen

    • Interior & Cells - Zellinhalte ansprechen

    • Color / Colorindex - Farben setzen

    • Address - Die Zelladresse bestimmen

    • Column & Row - Die Spalte und Zeile bestimmen

    • Columns & Rows - Anzahl Spalten und Zeilen zählen

    • CurrentRegion - Zellbereich anwählen wie Strg+A

    • Entirecolumn Entirerow - Mit ganzen Spalten und Zeilen arbeiten

    • End - An das Ende eines Bereiches springen

    • Formula & FormulaLocal & HasFormula - Formeln setzen und auf diese prüfen

    • Offset - Super fürs Data Clean-Up (wie Bereich.Verschieben)

    • Resize - Die Auswahl eines Zellbereichs anpassen

    • SpecialCells - Genial um z.B. schnell leere Zellen zu entfernen

    • Übung2: Spaltenköpfe vorbereiten

    • Übung2: Lösung

  • 4

    Zellmethoden (Range & Cell & Interior)

    • Übersicht

    • Select & Activate - Zellbereiche auswählen und aktivieren

    • Clear - Inhalte aus Zellen löschen

    • Copy & Cut & Paste & PasteSpecial - Inhalte kopieren/ausschneiden und einfügen

    • Insert & Delete & Rows & Columns - Zeilen & Spalten einfügen und löschen

    • Sort - Inhalte sortieren

    • Autofilter - Inhalte filtern

    • RemoveDuplicates - Duplikate entfernen

    • Übung3: Eine Datenspalte ent-pivotieren

    • Übung3: Lösung

  • 5

    Arbeitsblätter (Worksheets)

    • Worksheets vs Sheets - Arbeitsblatt ist nicht gleich Arbeitsblatt

    • Select & Count & Name & Tab - Arbeitsblätter selektieren, zählen, umbenennen

    • UsedRange - Den gesamten genutzten Bereich ausfindig machen

    • Visible - Arbeitsblätter verstecken

    • Add & Delete - Arbeitsblätter hinzufügen und löschen

    • Copy & Move - Arbeitsblätter kopieren und bewegen

    • Übung4: Daten kopieren und auf neuem Arbeitsblatt platzieren

    • Übung4: Lösung

  • 6

    Arbeitsmappen (Workbooks)

    • Workbooks - Der Umgang mit Arbeitsmappen

    • Add & Save & SaveAs & Path - Arbeitsmappen erstellen und abspeichern

    • Open & Close - Arbeitsmappen öffnen und schließen

  • 7

    Applikation (Application)

    • Selection - Mit der aktuellen Auswahl arbeiten

    • Names & RefersTo & RefersToRange - Mit Zellbereichen arbeiten

    • Run & Quit - Prozeduren ausführen und Excel beenden

    • Programmablauf beschleunigen

  • 8

    Variablen, Datentypen und Operatoren

    • Variablen & Datentypen

    • Variablen deklarieren & Scope & Konstanten

    • Arrays - Feldlisten

    • Rechen-, Vergleichs-, Logikoperatoren

    • Übung5: Variablen definieren und befüllen

    • Übung5: Lösung

  • 9

    Entscheidungen & Schleifen

    • Entscheidungen/Verzweigungen: IF

    • Entscheidungen/Verzweigungen: Select Case

    • Schleifen: Überblick

    • Schleifen: For Next

    • Schleifen: For Each

    • Schleifen: Do While / Until Loop

    • Übung6: Mehrere Spalten mit Schleifen ent-pivotieren

    • Übung6: Lösung

  • 10

    Prozeduren

    • Prozeduren: Überblick

    • Sub

    • Function

    • VBA Functions

    • WorksheetFunctions & User defined functions (UDF)

    • Property

    • Übung7: Variablen durch Funktionen ermitteln und an Prozedur weitergeben

    • Übung7: Lösung

  • 11

    Fehlerbehebung (Debugging)

    • Debuggen

    • Überwachungsfenster

    • Lokalfenster

    • Direktfenster

    • Fehlerbehandlung

    • Übung8: Alle Codebausteine zusammenführen und mit Debuggen kontrollieren

    • Übung8: Lösung

  • 12

    Ereignisse (Events)

    • Events Überblick

    • Workbook Events

    • Worksheet Events

    • Zellbereiche Events: Begleitdatei

    • Zellbereiche Events

    • Steuerelemente Events

    • Steuerelemente / ActiveX Events Übersicht & Beispiele

    • Tabellen Events: Begleitdatei

    • Tabellen Events: TableUpdate

    • Tabellen Events: WorkSheetChange + INTERSECT

  • 13

    Steuerelemente & Dialoge

    • Msgbox

    • InputBox

    • Dialoge öffnen mit GetOpenFilename & GetSaveAsFilename

    • Steuerelemente ohne VBA: Checkbox, Radiobox, Listbox

    • Steuerelemente ohne VBA: Spinbar, Scrollbar

    • Steuerelemente mit VBA: Command Buttons

    • Übung:9 Schaltflächen und Benachrichtigung einbauen

    • Übung9: Lösung

  • 14

    Formulare (UserForms)

    • Userforms - Schnelleinführung

    • Praxisbeispiel: Admin Form Einleitung

    • Praxisbeispiel: Begleitdateien

    • UserForm anlegen

    • Unload vs Hide

    • Initialize Listbox Additem

    • Listbox Listindex

    • UserForm mit Buttons öffnen

    • UserForm mit Passwort schützen

    • Excel Interface verstecken und einblenden

    • Arbeitsblatt und Arbeitsmappenschutz setzen

    • Nach Ausführung wieder zum Ursprungsblatt zurückkehren

    • Arbeitsblätter verstecken in Kombination mit Arbeitsmappenschutz

    • Begleitdatei

    • Praxisbeispiel: Formulare Einleitung

    • Codenames anpassen und Zellnamen definieren

    • Codenames anpassen und Zellnamen definieren

    • Elemente platzieren und anordnen

    • Durchsichtiger Hintergrund, ComboBox zur Dropdownbox machen

    • Elemente benennen

    • Defaultwerte für Comboboxen und Textboxen

    • Werte aus Userform in Arbeitsblatt bringen

    • Tabreihenfolgen einstellen - Tabindex

  • 15

    Anwendungsbeispiel: PKW-Zulassungen 2016 konsolidieren

    • Daten sichten und Arbeitsschritte definieren

    • Mehrere Dateien öffnen

    • Überflüssige Einträge löschen

    • Hilfsspalte hinzufügen

    • Daten umwandeln

    • Datumsspalten

    • Daten werden kopiert Teil1

    • Daten werden kopiert Teil2

    • Programmablauf beschleunigen

    • Finale Datenkontrolle und Bug Fixing

    • Bug Fixing: For Each vs For Next Schleifen

  • 16

    Tabellen (ListObject/s)

    • Begleitdateien

    • Add - Tabellen Anlegen

    • Name - Tabellen umbenennen

    • ListColumns.Count - Spalten zählen

    • ListColumns.Add - Spalten anlegen

    • HeaderRowRange - Spaltenköpfe beschriften

    • Tabellen auswählen

    • Copy - Tabellen kopieren

    • Delete - Tabellen löschen

    • ListRows.Count - Zeilen zählen

    • ListRows.Add - Zeilen Einfügen

    • ListRows().Delete - Zeile entfernen

    • DataBodyRange - Datenbereich entfernen und Inhalte löschen

    • Letzte Zeile entfernen

    • Resize - Tabellengröße ändern

    • Daten eintragen

    • Sort & SortFields - Sortieren

    • Autofilter - Spalte nach eindeutigen Wert filtern

    • Autofiter - Mehrere Spalten filtern und filter aufheben

    • Autofilter - Ist Nicht gleich

    • Autofilter - Größer Kleiner Zwischen

    • Autofilter - Top 10, über und unter Durchschnitt

    • Autofilter - Textfilter

    • Autofilter - Datum

    • Autofilter - Datumsangaben

    • Autofilter - Dyamische Datumsangaben

    • Autofilter - Leere und Nicht leere Zellen

    • AdvancedFilter - SpezialFilter

    • Filterergebnisse kopieren

    • Filterergebnisse - Zeilenindex ermitteln

  • 17

    Pivot-Tabellen

    • Pivot-Tabellen und VBA Intro

    • Pivot-Tabellen erstellen

    • Alle Pivot Items auswählen

    • Spezielles Pivot Item auswählen

    • Erste und letzte 3 Pivot Items abwählen

    • Letzte X Pivot Items auswählen (ideal bei regelmäßiger Aktualisierung)

    • Pivot per VBA aktualisieren

  • 18

    Fortgeschrittene Techniken

    • Kamerafunktion

    • Autovervollständigung

  • 19

    Addins

    • Addins

    • Addins erstellen

    • Addin mit User Defined Functions (UDF) - Datenbereinigung Teil1

    • Addin mit User Defined Functions (UDF) - Datenbereinigung Teil2

  • 20

    Menüband (Ribbon)

    • Intro

    • Custom UI Editor

    • Begleitdateien & Links

    • Beispielcode

    • XML Syntax

    • Position von Elementen steuern (insertAfterMso / insertBeforeMso)

    • Elemente beim Start ausblenden (visible & startFromScratch)

    • Buttons

    • Checkbox

    • Combobox

    • Kontextsensitive Registerkarten (Contextual Tabs)

    • Callback-Funktionen (getVisible)

    • Menüband aktualisieren (RibbonOnLoad & Invalidate)

    • Elemente dynamisch ausblenden Teil 1 (GetVisible & Tag)

    • Elemente dynamisch ausblenden Teil 2 (Worksheet_Activate)

    • Elemente dynamisch ausblenden Teil 3 (InStr)

  • 21

    Bonusabschnitt

    • Wie Du die einzelnen Bereiche von Excel kombinierst um Prozesse zu automatisieren

  • 22

    Dein Feedback

    • Dein Feedback und Kundenstimme

Vorschauvideos

VBA in Aktion


Was ist VBA?


Makros aufnehmen und abspielen


Objektmodell & VBA


Rückmeldungen von Kursteilnehmern

Ich habe im Januar ein 3 Tage VBA Seminar bei PC-College besucht. Kostenpunkt 1500€. Nach dem Seminar konnte ich nicht mal richtig VBA Code lesen. Dann bin ich vor kurzen an des Seminar vom Daniel durch eine Anzeige aufmerksam geworden. Ich habe fast die Hälfte des Seminars hinter mir. Und was ich sagen kann, einfach genial. Super erklärt mir vielen Beispielen für viel weniger Geld. Daniel Hut ab. Das hast Du super vorbereitet. Leider kann ich offiziell nur 5 Sterne vergeben. Von mir hast Du noch ein Stern zusätzlich. Bei nächstem Seminar bin ich dabei.


Exzellente Präsentation und professionelle Vermittlung von Wissen. Umfangreiche Themenpalette sehr gut erklärt und mit Praxisbeispielen untermauert. Ein durchweg sehr gelungener Kurs und daher uneingeschränkt empfehlenswert!


Ich mag die schrittweise Vorgehensweise. Zu jeder Zeit sind die Schritte transparent und nach vollziehbar.


Ich bin komplett zufrieden. Man wird schritt-für-schritt an die VBA-Programmierung rangeführt. Sehr ausführlich!


Schon als Anfänger kann man hier in diesen Kurs schnell das gelernte in der Praxis anwenden. Die Kapitel sind kurz und sehr erklärend. Ich konnte schon in kurzer Zeit das gelernte in der Praxis anwenden und sei es bei Kleinigkeiten Zeit einsparen können. Der Dozent antwortet auch schnell und geht auf die Fragen ein. Für Anwender die viel mit Excel arbeiten ist der Kurs definitiv empfehlenswert.


Der Kurs beginnt bei Null, ist für meinen Geschmack gut strukturiert und geht in angemessenem Tempo in die Tiefe. Die unaufgeregte Art und Weise wie die Inhalte vermittelt werden empfinde ich ebenfalls als sehr angenehm.


Super. Ich bin zwar noch lange nicht am Ende des Kurses angelangt, aber ich bin jetzt schon begeistert. Der Dozent hat nicht nur ein angenehmes Tempo bei der Vorgehensweise, sondern auch sehr gut aufbereitetes Begleitmaterial. - Ich freue mich auf die nächsten Lektionen... 


Habe bis dahin ca. 1/3 des Kurses durchgemacht. Von meinem Background arbeite ich bereits eine Weile mit Excel VBA in Verbindung mit Ansprache von SAP Systemen aus Excel heraus. Aber ich muss eingestehen: fast alles habe ich mit "Copy and Paste" aus irgendwelchen Vorlagen hinbekommen ohne wirklich im Detail zu verstehen, was genau abläuft. Daher fand ich diesen Kurs in den bisherigen Lektionen etwas zu Basic - DACHTE ICH! Dies muss ich derweil massiv revidieren. Zum einen verstehe ich eben durch diese Grundlagen nun viel mehr was ich bei meinen eigenen Skripts zusammengebaut habe - und wie ich ein Problem bspw. besser lösen kann. Zum anderen, entdecke ich Einsatzmöglichkeiten, die ich bisher gar nicht im Blickfeld hatte. So baue ich gerade für meine Tochter eine Excel & VBA basierte Prüfungssimulation, mit dem sie selbst x Fragen durcharbeiten & die Antworten auf Richtigkeit prüfen kann. Bei einer korrekten Antwort, fällt die Frage aus dem Katalog & bei einer Wiederholung werden damit nur vorher falsch beantwortete Fragen wieder angezeigt. Dies hätte ich ohne den Kurs never ever so hinbekommen! Bin schon gespannt auf die weiteren Lektionen des Kurses, denn rein schon von den Titeln geht es da noch viel mehr ans Eingemachte.


Super Kurs für Anfänger aber auch für leicht Fortgeschrittene. Es gibt viele "Aha" - Effekte und Dinge die ich viel umständlicher durchgeführt habe. Dieser Kurs ist sehr empfehlenswert!!!!!


Der Kurs war für mich überaus nützlich und hat mich voll und ganz überzeugt. Der Dozent ist ein echter Experte auf seinem Gebiet und bringt das Thema engagiert und ohne jede Wichtigtuerei rüber. Besonders hervorheben möchte ich: (1) Die gute und ausführliche Erklärung der VBA-Entwicklungsumgebung, die mir dabei geholfen hat, die Möglichkeiten des Editors besser zu nutzen. (2) Die fundierte Einführung in das Excel-Objektmodell, die mir hilft, beim Programmieren die spezifischen Möglichkeiten von Excel zu nutzen, anstatt nur auf allgemeine Programmierkonzepte zurückzugreifen. (3) Genial finde ich die vorgestellte Funktion zum Finden der letzten befüllten Zeile eines Bereichs. Dazu habe ich schon häufig gegoogelt (ist ja eine typische Problemstellung), aber nichts so Cleveres wie hier gefunden. (4) Die praxisnahen und für mich durchaus anspruchsvollen Übungsaufgaben. Diese habe ich durchweg völlig anders gelöst als der Dozent, aber das finde ich umso interessanter, wie man ganz unterschiedlich zum Ziel kommen kann.


Obwohl ich bestimmt einer der ältesten Teilnehmer an diesen Kurs bin, war ich positiv überrascht. Ich habe immer viel mit Excel gearbeitet. An VBA habe ich mich nicht so richtig rangetraut. Aber durch deine verständlichen Erklärungen und Beispiele konnte ich es schnell erfassen und habe bereits viel umgesetzt.


Ich fand den Kurs sehr gut um einen Einstieg in die VBA Programmierung zu bekommen. Für den Preis finde ich den Umfang und das was vermittelt wird echt sehr fair. Preis/Leistung ist also sehr gut! Sehr gut fand ich auch, das der Dozent viele PDF Dateien bereitstellt, in denen man dann später das gelernte nachlesen kann. Auch für komplette Anfänger in VBA Programmierung ist der Kurs geeignet. Ein paar MINIMALE Sachen wiederholen sich was ich aber nicht unbedingt schlimm finde, da man sie sich so besser merkt. Was man besser machen könnte, wäre mehrere Übungen/Anwendungsbeispiele mit einzubauen... Im Großen und Ganzen aber ein sehr gelungener Kurs, den ich ohne zögern jedem weiterempfehlen kann, der sich in VBA Programmierung einarbeiten möchte. 


Bin noch relativ am Anfang des Kurses, habe aber schon ein paar Tipps mitgenommen, die ich in Zukunft nutzen werde. Denke, der Kurs wird auch weiter nicht enttäuschen. Jetzt bin ich durch und mein ursprünglicher Eindruck hat sich bestätigt, der Kurs ist wirklich gut für alle die einen soliden Einstieg in VBA möchten. Wie bei jeder Programmiersprache kommt es natürlich darauf an, dass man das auch alles selbst nachvollzieht und die Übungen macht um möglichst viel mitzunehmen aber das versteht sich ja eigentlich von selbst. 


Ich arbeite bereits seit vielen Jahren mit Excel VBA und war eigentlich nur neugierig, wie andere an Lösungen mit VBA herangehen. Sehr positiv war ich überrascht davon, wie viel ich noch lernen konnte und kann diesen Kurs daher auch Teilnehmern empfehlen, die schon mit VBA gearbeitet haben. Hervorheben möchte ich auch Stimme und Herangehensweise des Referenten in diesem Kurs. Es harmoniert alles wunderbar miteinander. Auch der Kontakt mit dem Referenten funktioniert hervorragend. Ich war begeistert und gebe gern dafür 5 Sterne . 


Ich bin ganz zufrieden damit. Ich werde mir die Lerninhalte immer mal wieder angucken müssen.^^ Es wird viel erklärt, auch wenn einige Themen, wie das unterscheiden der einzelnen Ebenen (Workbooks, Worksheets, Sheets, Tabs, etc.), etwas umständlich im Vergleich gebracht wird mit einem Haus, Räume, Gegenstände, etc. Aber jeder erklärt es halt anders. Wichtig wäre vielleicht noch mehr auf den Sinn/Notwendigkeit der Reihenfolge einzugehen, die man programmiert. Also d.H. Sub IngMontag() .... Code ... End Sub Aber ansonsten war es schon viel besser als so manch einer erklärt^^


Habe schon einige Makros in den letzten Jahren geschrieben und Excel auch mal gerne an die Leistungsgrenze gebracht. Einiges trotzdem hier wieder aufgefrischt und dazu gelernt. Was mir mal gefallen würde wäre andere Officeprogramme oder gar andere Programme aus VBA heraus ansteuern zu können.