Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle in gefilterten Zeilen füllen

Zelle in gefilterten Zeilen füllen
23.05.2017 20:29:55
Unwissender
Ich suche eine Möglichkeit mittels Makro, in Excel 2016, in selektierten Zeilen in einer Zelle eine Markierung zu setzen. Dazu muss ich sagen das die Tabelle aus mehr als 50.000 Zeilen und 12 Spalten besteht.
In einem Makro lasse ich über Autofilter nur die Zeilen angezeigen, die einem Suchkriterium entsprechen, das sich auf eine oder mehrere Spalten bezieht.
Beispiel:
Spalte1 Spalte2 Spalte3 ... Spalte8 ... Spalte12
Marke1 Typ-a blau ... ... mitte
Marke2 Typ-b blau ... ... mitte
Marke1 Typ-c grün ... ... mitte
Marke3 Typ-b gelb ... ... rechts
Marke2 Typ-c grün ... ... mitte
Marke3 Typ-b blau ... ... links
Marke2 Typ-a gelb ... ... rechts
Wenn ich nun das Makro mit dem Autofilter so einsetze, das Spalte2 = "Typ-b" und Spalte3 = "blau" sind, so werden mir die Zeilen 2 und 6 angezeigt. In Spalte8 möchte ich nun in diesen Zeilen eine Markierung z.B. ein "x" eintragen.
Ich habe schon im Web recherchiert, aber noch keinen praktikablen Lösungsanzatz gefunden. Das Durchlaufen der Tabelle mit Prüfung, ob die Zeile verdeckt (hidden) ist, ist aufgrund der Anzahl der Datensätze zu langwierig. Gibt es eine andere Möglichkeit das Problem mittels Makro zu lösen?
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: specialcells(12)
23.05.2017 20:47:48
Fennek
Hallo,
wenn man nicht oft in einzelne Zellen schreibt, sondern auf einmal in viele, ist dies erheblich schneller.

sub Test()
with cells(1).currentregion
.autofilter 2, "Typ-b"
.columns(8).specialcells(12) = "x"
.autofilter
end with
end sub
mfg
Anzeige
AW: specialcells(12)
24.05.2017 16:28:58
Unwissender
Super! Vielen Dank. Das ist genau das was ich gesucht habe. Mein Problem ist gelöst.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle in gefilterten Zeilen füllen


Schritt-für-Schritt-Anleitung

Um in Excel 2016 nur sichtbare Zellen in gefilterten Bereichen zu füllen, kannst du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Zellen füllen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub FuelleGefilterteZellen()
       With Cells(1).CurrentRegion
           .AutoFilter 2, "Typ-b" ' Filtere nach Typ-b in Spalte2
           .Columns(8).SpecialCells(xlCellTypeVisible) = "x" ' Fülle nur sichtbare Zellen in Spalte8
           .AutoFilter ' Entferne den Filter
       End With
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle FuelleGefilterteZellen aus und klicke auf Ausführen.

Jetzt solltest du in den gefilterten Zeilen in Spalte 8 ein "x" sehen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro gibt einen Fehler aus, wenn keine sichtbaren Zellen vorhanden sind.

    • Lösung: Stelle sicher, dass die Filterkriterien tatsächlich Ergebnisse liefern. Wenn keine Zeilen sichtbar sind, wird der Befehl SpecialCells nicht funktionieren.
  • Fehler: Zellen in einem gefilterten Bereich oder in einer gefilterten Tabelle können nicht verschoben werden.

    • Lösung: Verwende .SpecialCells(xlCellTypeVisible), um sicherzustellen, dass nur die sichtbaren Zellen bearbeitet werden.

Alternative Methoden

Wenn du nicht mit Makros arbeiten möchtest, kannst du auch die Funktion "Suchen und Ersetzen" verwenden:

  1. Filtere die Tabelle nach deinen Kriterien.
  2. Wähle die Zellen in der Spalte aus, die du füllen möchtest.
  3. Drücke CTRL + H, um "Suchen und Ersetzen" zu öffnen.
  4. Lass das Feld "Suchen nach" leer und gib "x" im Feld "Ersetzen durch" ein.
  5. Klicke auf Alle ersetzen.

Diese Methode ist weniger automatisiert, funktioniert aber gut für kleinere Datenmengen.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit über 50.000 Zeilen. Wenn du nach "Typ-b" in Spalte 2 und "blau" in Spalte 3 filterst, kannst du mit dem oben genannten Makro in der Spalte 8 automatisch ein "x" eintragen.

Hier ist ein Beispiel für die Filterkriterien:

Spalte1 Spalte2 Spalte3 ... Spalte8 ... Spalte12
Marke1 Typ-a blau ... ... mitte
Marke2 Typ-b blau ... ... mitte
Marke1 Typ-c grün ... ... mitte
Marke3 Typ-b gelb ... ... rechts
Marke2 Typ-c grün ... ... mitte
Marke3 Typ-b blau ... ... links
Marke2 Typ-a gelb ... ... rechts

Nach dem Ausführen des Makros wird in den gefilterten Zeilen in Spalte 8 ein "x" angezeigt.


Tipps für Profis

  • Verwende xlCellTypeVisible in Kombination mit anderen Zellformatierungen, um die Sichtbarkeit und das Aussehen der gefilterten Daten zu verbessern.
  • Teste deine Makros stets in einer Kopie deiner Daten, um unbeabsichtigte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Spalten verwenden? Ja, ändere einfach die Zahl in .Columns(8) auf die entsprechende Spaltennummer.

2. Funktioniert dieses Makro in älteren Excel-Versionen? Das Makro wurde für Excel 2016 erstellt, könnte aber auch in ähnlichen Versionen funktionieren. Teste es einfach in deiner Version.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige