StartVBA-Kurs › Makro-Beispiele

VBA-Makro-Beispiele für den Excel-Alltag

Die folgenden Makros lösen typische Alltagsaufgaben und lassen sich direkt in ein leeres Modul kopieren. Passe Bereichs- und Blattnamen an deine Datei an.

Leere Zeilen in einem Bereich löschen

Löscht alle komplett leeren Zeilen innerhalb der Spalten A bis D, von unten nach oben – wichtig, damit sich die Zeilennummern beim Löschen nicht verschieben:

Sub LeereZeilenLoeschen()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If Application.CountA(Range("A" & i & ":D" & i)) = 0 Then
            Rows(i).Delete
        End If
    Next i
End Sub

Zellen bedingt formatieren (per Code statt Regel)

Markiert alle Umsätze über 100 € in Spalte B fett und grün – nützlich, wenn das Ergebnis fest in die Zelle geschrieben statt als bedingte Formatierung hinterlegt werden soll:

AB
1KundeUmsatz
2Müller GmbH148,00 €
3Schmidt KG72,00 €
4Weber & Co.205,50 €
Zeilen 2 und 4 werden vom Makro grün-fett markiert, Zeile 3 bleibt unverändert.
Sub UmsatzUeber100Markieren()
    Dim z As Long, letzteZeile As Long
    letzteZeile = Cells(Rows.Count, 2).End(xlUp).Row
    For z = 2 To letzteZeile
        If Cells(z, 2).Value > 100 Then
            Cells(z, 2).Font.Bold = True
            Cells(z, 2).Font.Color = RGB(33, 115, 70)
        End If
    Next z
End Sub

Aktives Blatt als PDF speichern

Speichert das aktuelle Tabellenblatt als PDF im selben Ordner wie die Arbeitsmappe, mit Dateiname wie das Blatt:

Sub AlsPDFSpeichern()
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name & ".pdf"
End Sub

Alle Arbeitsblattnamen auflisten

Schreibt die Namen aller Tabellenblätter der Arbeitsmappe untereinander ab Zelle A1 eines neuen Blatts – praktisch als Inhaltsübersicht bei vielen Blättern:

Sub BlattnamenAuflisten()
    Dim ws As Worksheet, i As Long
    i = 1
    For Each ws In ThisWorkbook.Worksheets
        Cells(i, 1).Value = ws.Name
        i = i + 1
    Next ws
End Sub

Meldungsfenster mit aktuellem Datum

Ein einfaches, aber nützliches Beispiel für Nutzerdialoge – zeigt eine Meldung mit dem heutigen Datum:

Sub HeutigesDatumAnzeigen()
    MsgBox "Heute ist der " & Format(Date, "dd.mm.yyyy")
End Sub
Profi-Tipp

Lass dir ähnliche Abläufe erst vom Makrorekorder aufzeichnen und passe den Code danach an eigene Schleifen und Bedingungen an – das geht meist schneller, als alles von Grund auf selbst zu tippen.

Häufige Fehler


Weiter im Kurs