Anzeige
Archiv - Navigation
1544to1548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Bedingte Formatierung

VBA - Bedingte Formatierung
08.03.2017 10:15:27
Nik
Hallo zusammen,
Habe ein kleines Problem mit einer bedingten Formatierung die ich per VBA in einen Zellenbereich eintragen lasse.
https://www.herber.de/bbs/user/112026.xlsm
Ich nutze dazu folgende Formeln, um je nach Zellen Inhalt die Zellen in Gelb, Blau, Grün etc. zu färben.

' Bedingung für gelben Zellhintergrund
With .FormatConditions.Add(Type:=xlExpression, Formula1:= _
"=WENN(Z(0)S" & c.Column & "="""";;IstZahl(Finden(Z(0)S" & c.Column & ";""-BI-BN-BT-BU-  _
_
BY-CP-CT-CW-D1-GN-GU-HC-HM-IH-IP-IT-TH-TI-TN-TP-UP-UZ-G-H-J-L-N-Q-"")))")
.Interior.ColorIndex = 6
End With
' Bedingung für blauen Zellhintergrund
With .FormatConditions.Add(Type:=xlExpression, Formula1:= _
"=WENN(Z(0)S" & c.Column & "="""";;IstZahl(Finden(Z(0)S" & c.Column & ";""-FA-FC-FD-FF-  _
_
HB-KC-KD-KE-KF-KG-KH-KJ-KK-KM-TE-TG-TS-WE-WF-03-12-13-14-15-25-27-28-2E-2M-2N-2S-30-31-39-4E-4J- _
4M-61-64-6L-83-84-86-B1-B2-B5-B7-B9-BE-40-AR-B1-BA-BE-BG-BJ-C1-C2-CC-CI-CK-CM-DH-D-EC-EE-FF-FL-FW-G1-JM-LD-MX-O1-O2-OR-RA-RO-SH-SL-VM-VV-WE-"")))")
.Interior.ColorIndex = 37
End With
' Bedingung für grünen Zellhintergrund
With .FormatConditions.Add(Type:=xlExpression, Formula1:= _
"=WENN(Z(0)S" & c.Column & "="""";;IstZahl(Finden(Z(0)S" & c.Column & ";""-AS-BH-BM-BO-  _
_
BP-EI-EP-ER-IA-IC-KA-KB-KP-KS-PC-PO-R1-RP-RU-SZ-T1-T2-ZA-ZC-"")))")
.Interior.ColorIndex = 43
End With

Das Problem erkläre ich am besten an einem Beispiel.
Wenn nun ein "X" im Zellbereich steht (hier in Zelle "D5"), welches nicht durch eine Formel gesucht wird, dann wird diese trotzdem in BLAU eingefärbt.
Ich glaube auch zu wissen warum, nämlich, weil ein anderes Suchkriterium für die Blaue Zellfärbung "MX" heisst.
Wie kann ich das abstellen, sodass er kein Teilergebnis findet und die Zelle einfärbt, sondern nur nach dem exakten Suchtext sucht und einfärbt.
In diesem Fall müsste die Zelle einfach bleiben wie sie ist, nämlich weiß bzw. ohne Färbung.
Danke im Voraus für jede Hilfe.
Gruss,
Nik

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Bedingte Formatierung
08.03.2017 10:38:03
Sheldon
Hallo Nik,
wenn die Minuszeichen kein Bestandteil der Zelleneinträge sind, dann:
IstZahl(Finden("-" & Z(0)S" & c.Column & "-"
Gruß
Sheldon
AW: VBA - Bedingte Formatierung
08.03.2017 10:54:47
Nik
Hallo Sheldon,
die Formel für die bedingte Formatierung nach Ausführung des Makro sieht ja verkürzt so aus:
=WENN($D2="";;ISTZAHL(FINDEN($D2;"-BI-TN-TP-UP-UZ-G-H-J-L-N-Q-")))
Wenn ich deinen Lösungsteil in den VBA Code einfüge bringt er mir leider eine Fehlermeldung.
Könntest du mir bitte genauer erklären, was das Minus damit zu tun hat und wie ich es richtig einbinde? Ich dachte das dient zur Abtrennung der verschiedenen Suchkriterien?
Gruß
Nik
Anzeige
AW: VBA - Bedingte Formatierung
08.03.2017 11:48:12
Sheldon
Hi,
versuche das bitte ohne Leerzeichen einzugeben.
Zur Erläuterung:
Du hast die Liste mit den Kriterien durch Minuszeichen getrennt. Um nun sicher zu gehen, dass nur das vollständige Suchkriterium gefunden wird, kannst du dir das zunutze machen. Dazu musst du dem Suchkriterium ein Minuszeichen vor- und hintenan stellen.
So wird
X zu -X-
MX zu -MX-
und daher in der Liste gefunden, falls -MX- eingetragen, aber nicht, wenn kein -X- eingetragen ist.
Gruß
Sheldon
AW: VBA - Bedingte Formatierung
08.03.2017 12:48:41
Nik
Hi,
er bringt mir dennoch die Fehlermeldung "Laufzeitfehler '13' - Typen unverträglich" wenn ich das so eingebe:
"=WENN(Z(0)S" & c.Column & "="""";;IstZahl(Finden(" - "Z(0)S" & c.Column & "" - ";""-BI-BN-BT-BU...
Die Leerzeichen macht der übrigens selber rein, sobald ich den Debugger wieder schließe.
Die 2. Möglichkeit wäre, wenn ich dich richtig verstanden habe, dass ich in Zelle "D5" das "X" in ein "-X-" umwandle.
Das funktioniert soweit auch. Nur erhalte ich die Tabelle aus einer Auswertung, sprich diese wird generiert, und ich müsste die Minus Zeichen jedesmal händisch davor/dahinter setzen. Was bei der unterschiedlich großen Anzahl an Zeilen schon ein sehr großer Aufwand wäre.
Gruß
Nik
Anzeige
AW: VBA - Bedingte Formatierung
08.03.2017 14:08:24
Sheldon
Hi,
der Fehler liegt hier:
"=WENN(Z(0)S" & c.Column & "="""";;IstZahl(Finden(" - " & Z(0)S" & c.Column & "" - ";""-BI-BN-BT-BU...
Da fehlt also bloß noch ein Et-Zeichen (fett gedruckt), dann läufts.
Gruß
Sheldon
AW: VBA - Bedingte Formatierung
09.03.2017 06:30:21
Nik
Hi Sheldon,
du hast natürlich völlig Recht gehabt.
Hatte es ja fast schon aufgegeben, aber habe es doch noch hinbekommen.
Damit es klappt muss es jedoch, der Vollständigkeit halber so aussehen:

IstZahl(Finden(""-"" & Z(0)S" & c.Column & "&""-"";""-BI-BN-BT-BU-

Nochmal ein großes Danke! an dich Sheldon :-)
Gruß
Nik
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige