Die Microsoft Office Anwendungen sind mit 85% Marktanteil die meistgenutzten Office-Anwendungen in Deutschland (Quelle: Statista). In unserer heutigen Blogartikelserie widmen wir uns daher Microsoft Excel, welches mit ein bisschen Erfahrung viel mehr bietet als einfache Tabellenkalkulationen, insbesondere in Verbindung mit VBA.
VBA steht für Visual Basic for Applications. Gemeint ist damit die Programmiersprache Visual Basic, die mit speziellen Ergänzungen in Microsoft Excel, Microsoft Word, und anderen Microsoft-Office-Anwendungen genutzt werden kann.
In unserem Unternehmen und bei unseren Kunden nutzen wir VBA zum Beispiel, um wiederkehrende Arbeitsschritte zu automatisieren.
Folgend ein einfaches Anwendungsbeispiel zu Excel und VBA in 3 Schritten:
Die Mitarbeiter:innen des Unternehmens 123 sind aktuell in verschiedenen Projekten eingesetzt. Für das Reporting sollen monatliche Projektübersichten in einem festgelegten Format angelegt werden.
Folgende Informationen stehen uns zur Verfügung:
Ziel: Die Projektübersichten sollen automatisiert, d.h. mit einem Klick bereitgestellt werden.
Schritt 1: Dynamische Bezüge
Da sowohl die Projekt- als auch die Mitarbeiterliste bei Bedarf erweitert wird, muss hier mit dynamischen Bezügen gearbeitet werden. Dazu definieren wir die benötigten Daten als Tabelle und geben ihnen einen aussagekräftigen Namen.
- Bereich markieren –> Registerblatt „Einfügen“ –> „Tabelle“ (ggf. „Tabelle hat Überschriften“ aktivieren) –> Tabellenname vergeben
- Über den Namensmanager im Registerblatt „Formel“ erhält man eine Übersicht der angelegten Tabellen:
Schritt 2: Template automatisieren
Das gewünschte Format für die Projektübersichten ist im Blatt Template hinterlegt. Um Arbeitsaufwand zu sparen, sollen die entsprechenden Daten hier automatisiert eingefügt werden. Dazu arbeiten wir mit Formeln.
Anmerkung: Excel-Formeln lassen sich in VBA „übersetzen“, aus eigener Erfahrung würde ich jedoch empfehlen, die Formeln beizubehalten – sie sind genauso effektiv, schneller anzupassen und zudem arbeitet VBA ausschließlich in englischer Sprache (das bedeutet für alle, die die Office-Anwendungen in Deutsch oder anderen Sprachen nutzen, einen zusätzlicher Aufwand, den wir vermeiden wollen 😉 ).
Die Tabellenblätter mit den einzelnen Projektübersichten sollen nachher automatisch entsprechend den Projekten benannt werden. Daher können wir den Projektnamen einfach über eine Formel auslesen und sowohl Startdatum als auch Mitarbeiter:innen auf dieser Basis ableiten.
- Projektname: Mithilfe dieser Formel können wir den Projektnamen aus der Blattbennenung ziehen (Vorsicht! Damit dies funktioniert, muss die Mappe zuvor gespeichert werden – am Besten direkt im .xlsm-Format (Excel-Arbeitsmappe mit Makros)):
=TEIL(ZELLE("dateiname";A1);SUCHEN("]";ZELLE("dateiname";A1))+1;1) --> 1 = Anzahl Zeichen, die ausgegeben werden sollen, muss an Projektbenennung angepasst werden
- Startdatum: Über SUMMENPRODUKT() kann das Startdatum der Projekte auf dem Blatt Projektliste ausgelesen werden:
=SUMMENPRODUKT((Projekte=$B$1)*(StartdatumProjekt)) --> hier arbeiten wir mit den Tabellennamen (= dynamische Bezüge)
- Mitarbeiter:innen: Hier sollen sowohl Vor- als auch Nachname eingetragen werden, wir müssen daher beide dynamischen Bezüge ansprechen:
=(INDEX(Nachname;KGRÖSSTE((ProjektPerMA=$B$1)*(ZEILE(ProjektPerMA)-3);ZÄHLENWENN(ProjektPerMA;$B$1)+1-ZEILE(A1))) =INDEX(Vorname;KGRÖSSTE((ProjektPerMA=$B$1)*(ZEILE(ProjektPerMA)-3);ZÄHLENWENN(ProjektPerMA;$B$1)+1-ZEILE(B1)));"")
In der Projektübersicht sollen Nach- und Vorname in einer Zelle angezeigt werden. Um das Ganze zu verbinden und unschöne Fehlermeldungen zu vermeiden, umschließen wir beide Formelsätze mit WENNFEHLER() und verbinden die Ergebnisse mit &“, „& :
=WENNFEHLER(INDEX(Nachname;KGRÖSSTE((ProjektPerMA=$B$1)*(ZEILE(ProjektPerMA)-3);ZÄHLENWENN(ProjektPerMA;$B$1) +1-ZEILE(A1)))&", "&INDEX(Vorname;KGRÖSSTE((ProjektPerMA=$B$1)*(ZEILE(ProjektPerMA)-3);ZÄHLENWENN(ProjektPerMA;$B$1) +1-ZEILE(B1)));"")
Mit Schritt 3 “Projektübersichten erstellen & aktualisieren” geht im nächsten Blogartikel “Einführung in Excel & VBA – Teil 2” weiter.