Einführung in Excel & VBA – Teil 2

Zurück zur Übersicht

Hier kommt die versprochene Fortsetzung von “Einführung in Excel & VBA – Teil 1“, beginnend mit Schritt drei:

Schritt 3: Projektübersichten erstellen & aktualisieren (VBA)

Im letzten Schritt wollen wir dafür sorgen, dass die Projektübersichten über einen Klick automatisch erstellt werden können. Dazu nutzen wir die Entwicklertools (CommandButton) und VBA.

Hinweis: Um den VBA-Editor in Excel zu öffnen, einfach die Tastenkombination [Alt] + [F11] drücken. Alternativ kann auch über das Menü „Entwicklertools“ (muss ggf. erst über „Datei“ –> „Optionen“ –> „Menüband anpassen“ aktiviert werden) auf den Editor zugegriffen werden.

  • Registerblatt „Entwicklertools“ –>  „Einfügen“ –> ActiveX-Steuerelemente –> „Befehlschaltfläche“ zum Beispiel im Blatt Projektliste einfügen
  • Entwurfsmodus“ aktivieren –> Rechtsklick auf Button

  • Über „Eigenschaften“ lässt sich neben Größe, Schriftstil, Farben, etc. auch die Bennenung im Editor anpassen (ohne Leerzeichen!).
  • Über „Befehlschaltfläche-Objekt“ –> „Bearbeiten“ lässt sich die auf dem Button angezeigte Benennung anpassen.
  • Über „Code anzeigen“ öffnet der Editor direkt den passenden Sub, in den wir unseren Code einfügen können.

Beim Klick auf den Button werden die einzelnen Projekte nun erstellt und entsprechend ausgefüllt:

Um bei dem nächsten Abruf der Projektübersichten die aktuelle Version zu erhalten, müssen eventuelle neue Projekte und/ oder neue Mitarbeiter:innen in den Projekten mit eingebunden werden. Dies lässt sich unkompliziert lösen, indem zunächst alle Übersichten gelöscht und dann neu aufgebaut werden. Hierfür können wir eine einfache Prozedur nutzen.

Zunächst fügen wir im Editor ein neues Modul ein und hinterlegen dort den Code für den Sub “ProjekteLöschen()”.

Option Explicit
Sub ProjekteLöschen()
'Variable definieren
Dim i As Long
'Anzeigeänderungen abschalten (Optik)
Application.DisplayAlerts = False
'Alle Blätter bis auf Projektliste, Mitarbeiterliste, Template und eventuelle ausgeblendete Blätter werden gelöscht
For i = ActiveWorkbook.Worksheets.Count To 1 Step -1
If Sheets(i).Name <> "Projektliste" And Sheets(i).Name <> "Mitarbeiterliste" And Sheets(i).Name <> "Template" And Sheets(i).Visible = xlSheetVisible Then Sheets(i).Delete
Next i
'Anzeigeänderungen einschalten
Application.DisplayAlerts = True
End Sub

Danach ergänzen wir in unserem ursprünglichen Code den Aufruf Call “ProjekteLöschen”. Dies bewirkt, dass bei Start des Subs “ProjekteErstellen” zunächst der Sub “ProjekteLöschen” aufgerufen (d.h. gestartet) wird.

Option Explicit
Private Sub ProjekteErstellen_Click()
'Einfache Prozedur --> Sub ProjekteLöschen wird nach Klick auf CommandButton gestartet
Call ProjekteLöschen
'Variablen definieren
Dim Zelle As Range
Dim WS As Worksheet
Dim Bereich As Range
Set WS = ThisWorkbook.Sheets("Projektliste")
Set Bereich = Sheets("Projektliste").Range("Projekte")
'Anzeigeänderungen abschalten (Optik)
Application.ScreenUpdating = False
'Für jedes in der Projektliste hinterlegte Projekt wird das Blatt Template 1x kopiert und entsprechend dem Projektnamen umbenannt
    For Each Zelle In Bereich
    Sheets("Template").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Zelle
    WS.Activate
    Next Zelle
'Anzeigeänderungen einschalten
Application.ScreenUpdating = True
'Benachrichtigung nach Erstellen der Übersichten anzeigen
MsgBox "Alle Projektübersichten wurden erstellt."
End Sub

Kommt nun zum Beispiel das Projekt E mit dem Mitarbeiter Max Mustermann hinzu, werden bei Klick auf den Command Button zunächst die bestehenden Projektübersichten gelöscht und danach wieder neu erstellt, wodurch wir die aktuelle Version der Übersichten erhalten.

Dies ist ein einfaches Anwendungsbeispiel, dass sich auf andere Konzepte übertragen lässt. Wir nutzen dieses Vorgehen zum Beispiel bei den Vorbereitungen der Qualitätssicherungsmaßnahmen in einem unserer Projekte.

Sie haben Fragen? Wir haben die Antworten!

Schreiben Sie uns. Wir freuen uns auf Ihre Nachricht!