Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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

Zellen mit Inhalt eines definierten Bereichs farblich füllen

Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 15:04:40
LuM19
Hallo liebe VBA Profis,

ich habe ein kleines Problem mit einem VBA-Code, an dem ich mir mal wieder die Zähne ausbeiße.
Ich möchte innerhalb eines definierten Bereichs (z.B. ("F5:F300")) die Füllfarbe für alle Zellen mit Inhalt ändern. Die Zellen ohne Inhalt sollen dabei nicht farblich gefüllt werden.
Dies soll am besten in ein bestehendes Sub eingepflegt werden, sofern möglich.

LG
Mike
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 15:06:37
onur
Brauchst kein VBA .
Da reicht eine bed. Formatierung.
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 15:12:56
LuM19
Danke für die schnelle Antwort.
Das muss aber leider in ein VBA Script, da ich dieses zur erleichterten Auswertung bei täglich neu generierten Dateien, des gleichen Schemas mit variirenden Werten, als Code einfüge und ausführe.

LG
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 15:18:27
onur
Da brauchst du doch nur die bedingte Formatierung auf eine dieser Tabelle zu übernehmen (und Bereiche anzupassen).
Dann Makrorecorder starten und irgendwas (z.B. Farbe der bed. Formatierung) dran ändern und den Makrorecorder stoppen.
Dann hast du dein Makro.
Anzeige
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 19:14:19
schauan
Hallöchen,

im Prinzip so:

Sub test()
On Error Resume Next
ActiveSheet.Range("F5:F300").SpecialCells(xlCellTypeConstants).Interior.Color = 65535
ActiveSheet.Range("F5:F300").SpecialCells(xlCellTypeFormulas).Interior.Color = 65535
On Error GoTo 0
End Sub

Hinweise:
- eventuell setzt Du zuvor im Bereich die Farben auf den Ausgangswert zurück
- On Error ... sparsamst in einem Codebereich einsetzten und auch zurücksetzen
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 20:23:28
onur
Dann erkläre doch mal, wofür genau du
On Error Resume Next 

brauchst.
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 20:38:45
schauan
@onur,

nö. Ich denke, Du weißt es und hast eine Alternative. :-)
Anzeige
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 20:42:36
onur
Dachte ich mir schon....
Nix für Ungut, aber du solltest vielleicht erst mal selber VBA lernen, bevor du hier versuchst, Leuten zu helfen, die höchstens ein Bisschen weniger VBA beherrschen als du.
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
05.02.2024 20:47:10
schauan
Hallöchen,

also, ich dachte ja, Du kommst jetzt mit Deiner Alternative. Ich spekuliere aber jetzt nicht, warum nicht ...
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
06.02.2024 08:07:49
LuM19
@onur:
das mit der bedingten Formatierung ist natürlich völlig richtig. Ich möchte hier jedoch ein komplexes Script etwas upgraden und bin dabei auf dieses kleine Problem gestoßen. Ich muss täglich eine generierte Tabelle mit um die 3000 Zeilen auswerten. Da es mir zu mühseelig war diese 3000 Zeilen immer durchzuscrollen um die für mich erst mal relevanten Summen zu sehen, habe ich etwas geschrieben (seinerzeit auch schon mal mit Hilfe dieses Forums) um die Summen der einzelnen Bereiche in den Spalten daneben anzeigen zu lassen. Die ganze Kosmetik und die Gadgets drum herum habe ich selbst hinbekommen. Nun wollte ich noch um eine Funktion erweitern um bestimmte Werte in definierten Spalten farblich hervorzuheben. Die Vorgaben, welcher Wert welche Füllfarbe erhalten soll, möchte ich in der Tabelle selbst eintragen. Damit beim Übernehmen anderer Vorgaben nichts durcheinander kommt muss im definierten Bereich die Füllfarbe aller Zellen mit Werten immer erst mal wieder auf die Ursprungsfarbe zurückgesetzt werden, damit dann nur die Werte farblich hervorstechen, den den Vorgaben entsprechen.
Und das alles möchte ich in meinen vorhandenen Code einpflegen um diesen nach dem Öffnen der Tabelle als Code einzufügen und dann einmal auszuführen, ohne jedes Mal noch die bedingte Formatierung zu erstellen.

@schauan:
Danke für Deine Idee. Aber wenn ich hier Laufzeitfehler umgehen muss kann ich das so leider nicht in meinen vorhandenen Code integrieren.
Anzeige
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
06.02.2024 09:29:47
schauan
Hallöchen,

also, mit dem Code übergehst Du nur in den zwei Zeilen die Fehler. Siehe mein Hinweis, die Fehlerbehandlung nach Gebrauch wieder zurückzusetzen.

***********************

Dann holen wir mal weiter aus - erst mal zu meinem Vorschlag.

--> Erste Frage wäre, was in dem Bereich steht.
Stehen dort nur Daten, brauchst Du nur die ...constants. Dann könnte man statt mit einer Fehlerunterdrückung mit einer Zählfunktion programmieren.
Stehen dort nur Formeln, brauchst Du nur die ...Formulas. Dann könnte man statt mit einer Fehlerunterdrückung mit einer Zählfunktion programmieren.
Das könnte so aussehen
If WorksheetFunction.CountA(Range("F5:F300")) > 0 Then
...
Kann dort beides stehen, dann reicht das nicht, weil COUNTA da nicht unterscheidet.
Eine Fehlerunterdrückung oder Prüfung bräuchtest Du auch nicht, wenn Du garantieren kannst, dass Daten und/oder Formeln in dem Bereich stehen.

--> Zweite Frage wäre, warum Du für die zwei Zeilen kein OnError nehmen kannst.
Nur mal ein weiterer Hinweis. Zu OnError haben einige die Meinung, dass das einen Programmierer kennzeichnet, der es nicht besser kann. Nun kann man gerne darüber diskutieren, ob eine Alternative statt gezieltem und bewusstem Einsatz von OnError unbedingt besser ist. Könnte für einen Programmierer aber durchaus lukrativ sein, alles Mögliche mit entsprechenden Codes abzufangen. Eventuell effektive Methoden nicht einzusetzen hat sicher auch was ...

**************************

So, und jetzt noch eine Alternative - in dem Fall wäre es eine Schleife. Ist bei Deinen 300 Zellen sicher auch kein zeitliches Problem :-)

For iCnt = 5 to 300
If Cells(iCnt,6).Value > "" Then
'Farbe setzen
End If
Next

Wie gesagt, ggf. vorher (vor der Schleife) die Färbung zurücksetzen.
Anzeige
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
06.02.2024 10:44:48
onur
Du möchtest sehr viel machen (bzw dass es ein Anderer erledigt), aber kannst kein VBA. Das übliche Dilemma. All das, was du möchtest, ist aber etwas zu viel für eine kleine Hilfe aus dem Forum.
Besorge dir einen Auftragsprogrammierer.
"Da es mir zu mühseelig war diese 3000 Zeilen immer durchzuscrollen um die für mich erst mal relevanten Summen zu sehen" ? Man kann Summen auch OBEN berechnen lassen - nicht nur ganz unten....
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
07.02.2024 09:29:49
LuM19
@schauan:
Ich habe Deinen ersten Lösungsansatz mit "On Error" getestet. Es fühlt sich zwar irgendwie gemogelt an aber es läuft stabil und löst mein Problem zu meiner vollsten Zufriedenheit.
Dankeschön!

@onur:
das Du so pikiert bist über meine Frage bist kann ich nicht nachvollziehen. Über Deine Aussage, ich könne kein VBA, kann man sich streiten. In meinem Erfahrungslevel habe ich deshalb ja auch "VBA bescheiden" angegeben . Ich nutze Excel häufig im Beruf und bin ein Freund davon mir die Arbeit mit kleinen Hilfsmitteln zu erleichtern. So bin ich für Excel auf VBA gestoßen und habe mich dort eingelesen. Meine VBA-Kenntnisse habe ich mir also selbst angeeignet und nie in Schule oder Studium gelernt, wie vermutlich sehr viele Forumsmitglieder hier. 98% all meiner Ideen und Wünsche was die Excel-Hilfsmittel angeht konnte ich durch die Lösungen der Probleme vieler anderer Forumsmitglieder realisieren. Und das ist ja das Schöne an eben genau diesem tollen Forum. Ich konnte das selbst realisieren. Ja, ich möchte immer sehr viel machen. Aber keinesfalls das es ein Anderer für mich erledigt! Ein Forum ist für den Austausch von Ideen und Erfahrung und letztlich zum lösen von themabezogenen Problemen. Da muss ich mir von Dir nicht vorschreiben lassen, ich solle mir einen Auftragsprogrammierer besorgen.
Und was mein ersuchen nach kleiner Hilfe angeht, da hast Du wohl die sehr ausführlich Beschreibung meiner Sache missgedeutet. Das Problem an dem ich hängen blieb und keine Lösung in anderen Threads fand ist lediglich das, was im Betreff dieses Threads steht. Alles andere funktioniert.
Ebenso ist mir klar das man Summen auch OBEN berechnen kann. Die xlsx-Dateien, für die ich das Hilfsmittel haben wollte, sind jedoch von einem komplexen System generiert und dienen lediglich zur Datenanalyse. Habe ich auch schon erwähnt. Auf das Layout dieser Dateien habe ich keinen Einfluss. Da muss ich mit dem arbeiten was ich habe und das Beste daraus machen. Und dank hilfsbereiter Forumsmitglieder die sich der Lösung von VBA-Problemen anderer annehmen, ob nun aus reiner Nächstenliebe oder um selbst viele Probleme gesehen und gelöst zu haben (#Erfahrung), mache ich das beste daraus und mein Problem wurde gelöst.
Wenn dieses übliche Dilemma Dir also schlechte Laune bereitet, dann wäre es doch für alle besser wenn Du die Threads auf die Du antwortest besser selektierst und nur auf Fragen von Forumsmitgliedern antwortest die einen Erfahrungslevel auf Deinem Niveau angeben, anstatt Dich über die Unerfahrenheit anderer zu ärgern.
Ich danke Dir dennoch für Deinen Versuch mir bei meinem Problem zu helfen. Eine bedingte Formatierung war aber leider nicht das, was ich gesucht habe.

@Admin:
Mein Frage wurde erfolgreich beantwortet, somit kann dieser Thread geschlossen werden.
Vielen Dank!
Anzeige
AW: Zellen mit Inhalt eines definierten Bereichs farblich füllen
06.02.2024 10:23:35
LuM19
Hi,
vielleicht teste ich es mal mit OnError.
Zu Deinen Fragen:
Bei dem definierten Bereich handelt es sich immer nur um Spalte F beginnend ab F6. Die Anzahl der Zeilen unterscheidet sich immer und kann gerne mal an die 2700 Zeilen betragen. Die Zellen die Werte enthalten sind immer "Benutzerdefiniert 0,0;0,0;0,0" formatiert und enthalten immer nur Zahlen mit einer Dezimalstelle. Die freien Zellen dazwischen in Spalte F, die nicht gefüllt werden sollen, sind immer leer, ohne Füllung oder Rahmen und als Text formatiert.

Danke schon mal für die Mühe!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige