Microsoft Excel

Herbers Excel/VBA-Archiv

Zellinhalt nach Bedingung löschen

Betrifft: Zellinhalt nach Bedingung löschen von: BEN10
Geschrieben am: 06.08.2014 11:16:53

Hallo zusammen,

am 04.08. wurde mir bei meinem Problem in diesem Beitrag geholfen:

https://www.herber.de/forum/messages/1374028.html

Dort ging es darum, dass ich gerne, wenn in Spalte D eine Zelle eine bestimmte Hintergrundfarbe hat, bei Doppelklick ein "X" setzen möchte.
Mit der Lösung die ich dort bekommen habe, hat es auch wunderbar funktioniert.

Nun zu meiner NEUEN Frage:

Wie müsste nun ein Makro aussehen, dass mir alle "X" in Spalte D löscht, wenn in der Zelle eine bestimmte Hintergrundfarbe vorhanden ist???

In meinem fall ist es die Hintergrundfarbe RGB(0, 204, 255)

Gruß Ben

  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: Daniel
Geschrieben am: 06.08.2014 11:28:59

Hi

ausgehend von der Tatsache, dass in gefilterten Tabellen nur sichtbare Zeilen bearbeitet werden und Excel in der Lage ist, nach Farben zu filtern (allerdings nicht in Kombination mit Werten), könntest du in Spalte D nach deiner Farbe filtern und mit Replace die "X" durch nichts ersetzen:

Sub Makro5()
With Columns(4)
    .AutoFilter Field:=1, Criteria1:=RGB(0, 204, 255), Operator:=xlFilterCellColor
    .Replace What:="X", Replacement:="", LookAt:=xlWhole
    .AutoFilter
End With
End Sub
Gruß Daniel


  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: BEN10
Geschrieben am: 06.08.2014 12:20:38

Hi Daniel,

funktioniert soweit ich das nach ein paar ersten Testläufen beurteilen kann ohne Fehler, dafür DANKE.

Habe es grad nur mal "offen" gelassen, weil....

...Wie muss es aussehen, wenn das Makro nur im Tabellenblatt "Lieferungen 2014 - 2018" ausgeführt werden soll???

Gruß Ben


  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: Daniel
Geschrieben am: 06.08.2014 12:30:26

Hi

With Sheets("Lieferungen 2014 - 2018").Columns(4)
der Rest wie gehabt.

Gruß Daniel


  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: BEN10
Geschrieben am: 06.08.2014 12:49:13

Oha,

da ist mir doch grad noch eine Sache aufgefallen:

Ich habe in Zeile 1 von Haus aus einen Filter gesetzt (über mehrere Spalten). Nur wenn ich dein Makro ausführe, dann sind die Filter nicht mehr da.

So sieht das Makro aktuell in meiner Datei aus:

Sub Auswahl_Löschen_Spalte_D()

Application.ScreenUpdating = False

With Sheets("Delivery 2004 - 2018").Columns(4)
    .AutoFilter Field:=1, Criteria1:=RGB(0, 204, 255), Operator:=xlFilterCellColor
    .Replace What:="X", Replacement:="", LookAt:=xlWhole
    .AutoFilter
End With

Application.ScreenUpdating = True

End Sub



  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: Daniel
Geschrieben am: 06.08.2014 13:11:08

Hi

eigentlich viel zu umständlich, über den Filter zu gehen, das normale Suchen und Ersetzen beherrscht ebenfalls die Formate (allerdings keine bedingten Formate):

Sub Makro6()
    Application.FindFormat.Interior.Color = RGB(0, 204, 255)
    Sheets("Delivery 2004 - 2018").Columns(4).Replace What:="x", Replacement:="", LookAt:= _
xlWhole, SearchFormat:=True, ReplaceFormat:=False
    Application.FindFormat.Clear
End Sub
solltest du mit bedingten Formaten arbeiten und der Filter besteht bereits, dann so:
Sub Auswahl_Löschen_Spalte_D()

Application.ScreenUpdating = False

With Sheets("Delivery 2004 - 2018").Autofilter.Range
    .AutoFilter Field:=4, Criteria1:=RGB(0, 204, 255), Operator:=xlFilterCellColor
    .Replace What:="X", Replacement:="", LookAt:=xlWhole
    .AutoFilter Field:=1
End With

Application.ScreenUpdating = True

End Sub


Gruß Daniel


  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: BEN10
Geschrieben am: 06.08.2014 13:23:48

PERFEKT ! ! !

Habe es jetzt mit dieser Variante gelöst, da sich die Farben NICHT durch eine Bedingte-Formatierung erzeugen:

Sub Makro6()
    Application.FindFormat.Interior.Color = RGB(0, 204, 255)
    Sheets("Delivery 2004 - 2018").Columns(4).Replace What:="x", Replacement:="", LookAt:= _
xlWhole, SearchFormat:=True, ReplaceFormat:=False
    Application.FindFormat.Clear
End Sub


DANKE ! ! !

Gruß BEN


  

Betrifft: AW: Zellinhalt nach Bedingung löschen von: BEN10
Geschrieben am: 06.08.2014 13:24:06

PERFEKT ! ! !

Habe es jetzt mit dieser Variante gelöst, da sich die Farben NICHT durch eine Bedingte-Formatierung erzeugen:

Sub Makro6()
    Application.FindFormat.Interior.Color = RGB(0, 204, 255)
    Sheets("Delivery 2004 - 2018").Columns(4).Replace What:="x", Replacement:="", LookAt:= _
xlWhole, SearchFormat:=True, ReplaceFormat:=False
    Application.FindFormat.Clear
End Sub


DANKE ! ! !

Gruß BEN


 

Beiträge aus den Excel-Beispielen zum Thema "Zellinhalt nach Bedingung löschen"