Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

überholte Stände in Farbe 37 darstellen?

überholte Stände in Farbe 37 darstellen?
28.01.2008 21:20:00
Selma
Hallo Leute,
ich möchte die ZEILEN markieren, und dann die überholte Stände mit der Farbe 37 (Font.ColorIndex) nur von A bis Q darstellen.
Mit überholte Stände meine ich folgendes:
Wenn der Zelleninhalt in Spalte A, B, C und D identisch ist, dann soll noch verglichen werden was in Spalte E steht. Wenn in Zelle der Spalte E nichts steht, dann ist diese noch aktuell (keine Einfärbung). Erst wenn in Zelle die Buchstaben stehen, dann soll es verglichen werden. Wobei das erste Zeichen ein "-" ist. Alles andere sind Buchstaben.
Anbei ein fertiges Beispiel:
Wie mache ich dies per VBA?
Vielen Dank im Voraus.
Liebe Grüße,
Selma

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: überholte Stände in Farbe 37 darstellen?
28.01.2008 21:48:31
Daniel
Hallo Selma
besser als ein Bildschirmprint wäre eine Beispieldatei, damit man auch mal was ausprobieren kann, es ist immer so aufwendig, die Dateien nachzubauen und u.U. sind dann doch ein paar keinigkeiten anders, die dazu führen, daß das Makro bei dir nicht läuft.
dann wäre noch zu klären:
- womit sollen die Zellen der Spalte A-D identisch sein, dh. wo stehen die Vergleichswerte (drüber, drunter, auf einen Server in Timbuku;-)
- gleiche Frage für den Wert in Spalte E, was ist der Vergleichswert?
- bei welchem Vergleichsergebnis soll gefärbt werden und bei welchem nicht?
aber generell bin ich der Meinung, daß sich diese Aufgabe besser per bedingter Formatierung lösen lässt.
Gruß, Daniel

Anzeige
AW: überholte Stände in Farbe 37 darstellen?
28.01.2008 22:09:00
mamueja
Hallo Selma,
wo sind denn die Vergleichswerte für A,B,C und D ?
Gruß Martin

AW: überholte Stände in Farbe 37 darstellen?
28.01.2008 22:35:00
Selma
Hallo Daniel, hallo Martin,
anbei die Beispieldatei: https://www.herber.de/bbs/user/49476.xls
Ich habe noch zwei Zeilen hinzugefügt zwecks besserem Verständnis.
In der Beispieldatei steht z.B. in Zeilen 99 bis 102 der gleiche Inhalt in Spalten A bis D, dann ist der Zelleninhalt der Spalte E wichtig für die Einfärbung. Im Beispiel für Zeilen 99 bis 102 ist die Zeile 99 nicht eingefärbt, da die Zelle E99 leer ist. Dann soll die Zeile 101 ("A") und 102 ("-") eingefärbt werden.Die Zeile 100 wird nicht eingefärbt, da in Zelle E100 ein "B" steht und kein "C" in markierten Zeilenbereich vorhanden ist.
LG
Selma

Anzeige
AW: überholte Stände in Farbe 37 darstellen?
28.01.2008 23:37:00
Daniel
HI
probier mal das Makro hier
es ist für deine Beispieldatei geschrieben:
außerdem werden die Daten so umsortiert, daß die Prüfung über einen einfachen Vorgänger-Nachfolger-Vergleich erfolgen kann.

Sub färben()
Dim sp As Integer
Dim ze As Long
Dim check As Boolean
Dim Bereich As Range
Set Bereich = Range("A93:R112")
With Bereich
.Sort key1:=.Cells(1, 5), order1:=xlDescending, header:=xlNo
For sp = 4 To 1 Step -1
.Sort key1:=.Cells(1, sp), order1:=xlAscending, header:=xlNo
Next
For ze = 2 To .Rows.Count
check = True
For sp = 1 To 4
check = check And (.Cells(ze, sp) = .Cells(ze - 1, sp))
Next
Select Case check
Case False
.Cells(ze, 1).Resize(1, 17).Interior.ColorIndex = xlNone
Case True
Select Case .Cells(ze, 5).Value
Case ""
.Cells(ze, 1).Resize(1, 17).Font.ColorIndex = 1
Case Else
.Cells(ze, 1).Resize(1, 17).Font.ColorIndex = 37
End Select
End Select
Next
End With
End Sub


Gruß, Daniel

Anzeige
AW: überholte Stände in Farbe 37 darstellen?
29.01.2008 10:04:00
Selma
Hallo Daniel,
es funktioniert prima. Kannst du mir bitte ganz kurz zu den Code ein paar Kommentare schreiben.
Ich kann es nicht nachvollziehen.
Danke !
LG
Selma

AW: überholte Stände in Farbe 37 darstellen?
29.01.2008 10:34:00
Daniel
Hi

.Sort key1:=.Cells(1, 5), order1:=xlDescending, header:=xlNo
For sp = 4 To 1 Step -1
.Sort key1:=.Cells(1, sp), order1:=xlAscending, header:=xlNo
Next


das sortiert den Code, die Spalte E aufsteigend, damit der grösste Buchstabe oben steht, die restlichen absteigend, damit gleiche alle Zeilen, die in A, B , C und D die gleichen Werte haben, direkt untereinander stehen.
Dann kommt ne schleife, die alle Zeilen des Zellbereichs durchläuft (ohne die Erste Zeile)


check = True
For sp = 1 To 4
check = check And (.Cells(ze, sp) = .Cells(ze - 1, sp))
Next


hier wird geprüft, ob die Zellen A, B C und D von 2 benachbarten Zeilen gleich sind, sobald ein Wert nicht gleich ist, wird check = false
und dann kommt die Logische Prüfung, dh wenn check = false ist, dann handelt es sich um einen neuen Abschnitt und die Zeile muss auf jeden Fall schwarz werden (durch die Sortierung ist gewährleistet, daß es immer den grössten Buchstaben des Abschnitts trifft).
Ist Check = True, dann gehören beide Zeilen zum gleichen Abschnitt, jetzt muss nur noch unterschieden werden, ob die Zelle in Spalte E leer ist, dann wird die Zeile schwarz, oder ob sie einen Wert enthält, dann wird sie hellblau.
Gruß, Daniel

Anzeige
AW: überholte Stände in Farbe 37 darstellen?
29.01.2008 17:22:18
Selma
Danke Daniel !
LG
Selma

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige