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

Bedingte Formatierung

Bedingte Formatierung
06.12.2014 12:04:16
Sams

Hallo ihr Excel-VBA Profis
Ich habe hier ein Problem und komme nicht weiter.
Habe ein Tabellenblatt (Test) und fülle hier mehrere Spalten aus (Spalte A:1 bis G:25)
Jetzt wird aber in Spalte G nicht jede Zelle gefüllt.
Möchte jetzt die kompltte Zeile (Bereich Spalte A bis G) farblich markieren in der
in Spalte G nix steht. Bin soweit, dass ich die celle die gefüllt ist farblich markieren kann, aber wie geht das mit der ganzen Zeile. Steh da ein wenig auf dem Schlauch, und hoffe ihr könnt mir weiterhelfen.
hier mal mein Code:

Sub zelleeinfaerben()
Dim spalte1 As Range ' Spalte A
Dim spalte2 As Range ' Spalte G
Dim bereich As Range
Set bereich = Range("A1:G25") ' Bereich anpassen
For Each spalte1 In bereich
Select Case spalte1.Value
Case Is <> ""
spalte1.Interior.ColorIndex = 6
End Select
Next
End Sub

Gruß SAMS

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nix "doppelt"...
06.12.2014 13:44:21
{Boris}
Hi Hajo,
..nur weil die Betreffs gleich sind, muss das doch nicht doppelt sein. Das sind 2 völlig unterschiedliche Anfragen.
VG,Boris

Warum VBA?
06.12.2014 14:10:08
RPP63
Hallo!
Warum nicht tatsächlich per bed.Form.?
Markiere die Spalten A:G
bed.Form., neue Regel, Formel ist:
=($G1="")*(ANZAHL2($A1:$F1)>0)

Format zuweisen.
AW: Warum VBA?
06.12.2014 14:55:59
Sams
Hallo RPP63
Die Tabelle wird jedesmal mit einem Makro gelöscht und anschließend mit völlig neuen Daten gefüllt.
Da wäre es am einfachsten, dass die bedingte Formatierung auch das Makro übernimmt. Hinzu kommt, dass die Tabelle per Makro Schreibgeschützt ist dass keiner etwas verändern kann.
Das ganze läuft dann so ab:
Es werden Datensätze in Access mit Abfragen ausgewertet. Ergebnisse werden in besagte Tabelle geschpeichert. Neue Datensätze bekommen automatisch eine Kennzeichnung in einer extra Spalte. Und genau auf dieser Kennzeichnung soll zur besseren Übersicht die komplette Zeile bzw. der Datensatz eingefärbt werden. Anschließend wird die Tabelle mit Schreibschutz versehen. Läuft alles per Makro ab und deswegen mit VBA.
Gruß SAMS

Anzeige
spalte1.EntireRow.Interior.ColorIndex = 6
06.12.2014 14:10:54
Luc:-?
Ich hätte aber BedingtFormat gewählt, SAMS,
ggf auch mit VBA eintragbar.
Gruß + schöAd2WE, Luc :-?
Besser informiert mit …

AW: spalte1.EntireRow.Interior.ColorIndex = 6
06.12.2014 15:03:53
Sams
Hallo Luc:-?
Danke für Deine Antwort, funktioniert schon fast perfekt. Kann ich den Bereich der eingefärbt wird noch selbst bestimmen?? Wollte nur bis Spalte G einfärben.
Warum nicht bedingtes Format? Schau mal meine andere Antwort an. Soll alles per Makro ablaufen.
Gruß SAMS

von "A" bis "G" ... 2 Varianten
06.12.2014 17:30:03
Matthias L
Hallo

Option Explicit
Sub so()
Dim rng
For Each rng In Range("A1:G25") 'anpassen
If rng.Value <> "" Then Cells(rng.Row, 1).Resize(, 7).Interior.ColorIndex = 8
Next
End Sub
Sub oder_so()
Dim x As Long
For x = 1 To 25
If Application.WorksheetFunction.CountA(Range("A" & x & ":G" & x)) > 0 Then
Range("A" & x & ":G" & x).Interior.ColorIndex = 6
End If
Next
End Sub
Hab mal 2 versch. Farben benutzt ;-)
Gruß Matthias

Anzeige
AW: von "A" bis "G" ... 2 Varianten
08.12.2014 21:39:56
Sams
Hallo Matthias,
danke für Deine Lösung, war genau das was ich gesucht habe. Funktioniert echt super!!!!
Muss aber noch was Fragen, bezieht sich auf das selbe Thema.
Ich habe eine Tabelle mit 2 Spalten. Spalte A und Spalte B
Spalte A ist immer gefüllt und in Spalte B steht nur manchmal was drinnen.
jetzt möchte ich dass alle Datensätze bei denen in Spalte B nix drinnen steht farblich markieren.
wenn ich jetzt sage suche mir alle die in Spalte B leer sind und markiere diese dann markiert er mir die ganze Arbeitsmappe mit Ausnahme der Datensätze bei denen in Spalte B was steht.
Habe dank Dir eine schnelle Lösung gefunden, ist aber nicht so optimal.
Sub Test()
Dim rng1
Dim rng2
For Each rng1 In Range("A1:A200") 'anpassen
If rng1.Value <> "" Then Cells(rng1.Row, 1).Resize(, 9).Interior.ColorIndex = 3
Next
For Each rng2 In Range("B1:B200") 'anpassen
If rng2.Value <> "" Then Cells(rng2.Row, 1).Resize(, 9).Interior.ColorIndex = 0
Next
End Sub

So funktioniert es, ist aber etwas doof da ich erst alle Datensätze in einem Festen Bereich markiere um dann wieder einige umzufärben.
Man müsste die Spalte A bis zum letzten Datensatz durchlaufen und dann nur die Datensätze markieren, die in Spalte B leer sind.
Hast Du, oder jemand anders vielleicht noch eine bessere Lösung für mich??
Gruß SAMS

Anzeige
Offset(0,1) oder Offset(,1)
09.12.2014 15:49:13
Matthias L
Hallo
Hab gerade jetzt erst Deine Nachfrage bemerkt.
Machs mit Offset(,1).
Da brauchst Du nur eine Schleife
Dim rng1
For Each rng1 In Range("A1:A200") 'anpassen
If rng1.Value <> "" And rng1.Offset(, 1) = "" Then Cells(rng1.Row, 1).Resize(, 9).Interior. _
ColorIndex = 3
Next
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige