Makro nur auf gefilterte Zellen anwenden
Schritt-für-Schritt-Anleitung
Um ein Makro nur auf gefilterte Zellen anzuwenden, kannst du die SpecialCells(xlCellTypeVisible) Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
-
Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Sub Neu_formatieren()
Dim lngRow As Long
Dim Bereich As Range
' Setze den Bereich auf die gefilterten Zellen in Spalte B
On Error Resume Next
Set Bereich = Range("B2:B8000").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
' Überprüfen, ob der Bereich nicht leer ist
If Not Bereich Is Nothing Then
For Each Zelle In Bereich
If Trim$(Zelle.Text) <> "" Then
Zelle.EntireRow.RowHeight = 129.75 'Definiert die Höhe der Zellen
End If
Next
End If
' Artikelnummer formatieren
Range("B:B").NumberFormat = "0#\.####\.####"
End Sub
-
Führe das Makro aus: Drücke F5 oder gehe zurück zu Excel und führe das Makro über Entwicklertools > Makros aus.
Häufige Fehler und Lösungen
Fehler 1: "Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen."
Lösung: Stelle sicher, dass du tatsächlich gefilterte Daten hast. Wenn keine Zellen sichtbar sind, wird dieser Fehler angezeigt.
Fehler 2: "Das Makro wird auf alle Zellen angewendet, nicht nur auf die gefilterten."
Lösung: Überprüfe, ob du SpecialCells(xlCellTypeVisible) korrekt anwendest. Achte darauf, dass der Bereich nur die gefilterten Zellen umfasst.
Alternative Methoden
Wenn du nicht mit Makros arbeiten möchtest, kannst du die Excel-Formel verwenden, um nur auf gefilterte Daten zuzugreifen. Eine Möglichkeit ist, die AGGREGAT-Funktion zu nutzen. Diese funktioniert gut, um nur die sichtbaren Zellen zu summieren oder zu zählen.
Beispiel:
=AGGREGAT(9; 5; B2:B8000)
In diesem Beispiel zählt die Funktion nur die sichtbaren Zellen im angegebenen Bereich.
Praktische Beispiele
Hier sind einige praktische Beispiele für die Anwendung des Makros:
-
Zeilenhöhe anpassen: Wenn du eine Tabelle mit Bildern hast, kannst du die Zeilenhöhe nur für sichtbare Zeilen anpassen, um sicherzustellen, dass alles übersichtlich bleibt.
-
Datenformatierung: Verwende das Makro, um nur die gefilterten Artikelnummern zu formatieren, wodurch das Dokument lesbarer wird.
Tipps für Profis
- Verwende Fehlerbehandlung: Implementiere
On Error Resume Next und On Error GoTo 0, um Laufzeitfehler zu vermeiden.
- Optimierung des Codes: Minimiere die Anzahl der Schleifen, indem du sicherstellst, dass du nur einmal die Spaltenbreite festlegst.
- Dokumentation des Codes: Kommentiere deinen Code gut, damit du und andere ihn später leichter verstehen können.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um andere Spalten zu bearbeiten?
Du kannst die Range in den Codezeilen einfach ändern, z.B. Range("C2:C8000"), um auf eine andere Spalte zuzugreifen.
2. Funktioniert das Makro auch in Excel 365?
Ja, das Makro ist mit Excel 365 kompatibel. Stelle sicher, dass du die richtigen Berechtigungen zum Ausführen von Makros hast.