Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Matrix mit Werten vergleichen und farblich darstel

Matrix mit Werten vergleichen und farblich darstel
pointofview
Hallo und einen schönen guten Tag,
ich habe folgende Problemstellung. In einem Tabellenblatt "Rechenblatt" sind in Spalte A Höhenwerte (Range("A5:A45") und in Zeile 46 Breitenwerte (Range("B46:CD46") eines flächenabhängigen Produktes.
Im Datenbereich (Range("B5:CD45")) stehen nun Werte (Zahlen) drin. In einem weiteren Tabellenblatt "Parameterblatt" stehen nun verschiedene Bedingungen. Spalte B max. Breitenwerte, Spalte C max Höhenwerte, Spalte D max Gewichte, u.s.w.
Bsp. "A6" = 1, "B6" = 3000, "C6" = 3000, "D6" = 180, "E6" = A1, "F6" = S1
"A7" = 2, "B7" = 3500, "C7" = 3500, "D7" = 220, "E7" = A2, "F7" = S2
u.s.w.
Nun soll z.B. im Datenbereich des Tabellenblatt "Rechenblatt" die Höhenwerte, die Breitenwerte und die Gewichtswerte miteinander verglichen und die Treffer dann farblich markiert werden.
Allerdings komme ich bereits am Anfang schon nicht weiter:
Sub Vergleich()
Dim zelle   As Range, rng   As Range
Dim Fläche  As String, LB   As Range
Dim LH   As Range, LH1 As String
Dim Gewicht As String, Antrieb As String, SRH   As String
Dim Seiltr  As String, a    As Range, b     As Range
Dim c       As Range, d     As Range, e     As Range
Dim LHB As String
Set a = Sheets(2).Range("B5:CD45")
Set b = Sheets(2).Range("B52:CD92")
Set c = Sheets(2).Range("B99:CD139")
Set d = Sheets(2).Range("B146:CD186")
Set e = Sheets(2).Range("B193:CD233")
Set LH = Sheets(2).Range("A5:A45")
Set LB = Sheets(2).Range("B46:CD46")
LHB = Sheets(1).Range("C6").Value
LH1 = Sheets(1).Range("D6").Value
For i = 5 To 45
Cells(i, 1).Select
Do Until ActiveCell.Value = 2000
If ActiveCell.Value 

Ich schaffe nicht die verschiedenen Parameter so zu verknüpfen, dass alle abgeprüft und im Ergebnis farblich herauskommen. Bin um Hilfe verlegen und würde mich freuen, wenn Hilfestellung erfolgt.
Hier meine Musterdatei:

Die Datei https://www.herber.de/bbs/user/64935.xls wurde aus Datenschutzgründen gelöscht

Vielen Dank im Voraus.
PointOfView
Oliver
AW: Matrix mit Werten vergleichen und farblich darstel
07.10.2009 16:55:44
pointofview
Sorry,
hab noch vergessen, dass jeder Parameter eine andere Farbe bekommen soll.
Gruss
PointOfView
Oliver
AW: Matrix mit Werten vergleichen und farblich darstel
07.10.2009 20:07:08
Hans
hi,
mach doch nach
for i=5 TO 45
eine zweit Schleife auf, z.b.
for k=3 TO ...
dann ist i die zeile und k die spalte
also etwa so...
for i=5 TO ...
for k=3 TO ...
if cells(i,k).value=... then ...
if cells(i,k).value=... then ...
next
next

hans
AW: Matrix mit Werten vergleichen und farblich darstel
07.10.2009 20:25:03
Hans
hi,
so isses natürlich noch einfacher...
dieser code macht z.b. alle zellen mit dem wert 1 im angegeben bereich rot
Dim c
For Each c In Range("C7:F11").Cells
If c.Value = 1 Then c.Interior.ColorIndex = 3
Next

cu
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
07.10.2009 20:00:55
franc
öhm ja ^^
ich werde trotz deiner Erklärung nicht ganz schlau draus.
Nehmen wir mal die 1. Zeile
Parameter max Breite max Höhe Gewicht Motor SRH STR
1 1000 3000 100 A1 S1 ST1
Was soll da jetzt passieren oder wie soll das dann aussehen?
Auf dem Rechenblatt ist der niedrigste Wert für die Breite 2000
Soll da jetzt schon die nächste Zeile genommen werden?
Dann weiter - du hast eine Variable LHB die den Wert von C6 bekommt. In dem Fall ist das die Höhe 3000
In dem Beispiel hätte die aktive Zelle den Wert 1000
jetzt kommt eine do loop schleife die keinen Sinn macht. (meiner Meinung nach)
und nun eine if then Bedingung die auf gut Deutsch heißt
Wenn 1000 kleiner/gleich 3000 UND gesamter Zellbereich Blatt 2 kleiner/gleich 100 dann Färbe alle Zellen in Blatt 2 rot ...
Die Vergleichsopteration für auf jeden Fall zu einem Fehler
die do loop schleife macht hier wie gesagt auch keinen Sinn und endet unter Umständen im Nirvana
er soll so lange weitermachen bis die aktive Zelle eine 2000 ist - wenn da aber nicht zufällig eine 2000 drinsteht wird das endlos laufen. (zum glück bricht das schon vorher ab)
Nehmen wir an, vorher würde kein Fehler auftreten, dann würde er jetzt eine Zeile weiter runtergehen wo zufällig 2000 steht.
Dann würde er nun die Breite in Zeile 2 mit der Höhe in Zeile 1 vergleichen. (warum das denn?)
---------------
Also nochmal
Wir haben Breite 1000, Höhe 3000 und Gewicht 100
was genau soll er nun vergleichen und wann ist die Bedingung erfüllt?
Breite 1000 steht wie gesagt schonmal nicht in der Liste - was soll in dem Fall passieren? (genau das gleich wenn die höhe nicht vorkommt)
Angenommen
Höhe ist 2000, Breite ist 2000, Gewicht 100
beides kommt auf dem Rechenblatt vor und da steht beim Schnittpunkt ein Gewicht von 75,5.
Da 100 aus Blatt 1 höher ist als die 75,5 ist das dann ok oder nicht?
Was soll dann markiert werden? Nur die Zeile wo die Einträge mit dem Rechenblatt passen?
Weiterhin gilt es zu beachten das es max. 46 Farben gibt - zumindest bei meinem Excel. ^^
Am besten eine neue Tabelle anhängen und dort möglichst genau markieren/beschreiben wie es aussehen soll und welche Bedingungen erfüllt sein müssen
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
09.10.2009 07:15:28
PointOfView
Hallo Hans und franc,
zunächst mal Danke für eure Aufmerksamkeit. Ich werde den Code von Hans heute abend mal testen, glaube aber nicht das das die Lösung ist, da es der Bereich "c" sich auch variabel gestalten muss. Nämlich nach den Parametern max. Breite und max. Höhe.
Ich versuche es noch mal besser zu erklären. Ein Produkt hat ein Gewicht, welches sich innerhalb der Matrix zu den Grössenparametern Breite und Höhe zugeordnet ist. Dieses Produkt hat spezielle Austattungsparameter, die unter den Parametern max. Breite, max. Höhe und Gewicht als Ramenbedingungen gelten. Als Beispiel: Das Bauteil "SRH" ist bei Parameter 1 und den Größen- und Gewichtsparametern (im beigefügten Beispiel max. Breite 2500mm, max Höhe 2500mm und max Gewicht 100kg) das Bauteil "S1"! Das Tabellenblatt "Parameterblatt" wird also nur mit den varaiblen Rahmenparametern gefüllt. Im Tabellenblatt "Rechenblatt" soll dann der Bereich (Gesamtbereich ist B5:CD45) farblich gestaltet werden (Zellfärbung) unter Berücksichtigung der jeweiligen "Rahmenparameter" aus dem Tabellenblatt "Parameterblatt". Im angehängten Beispiel natürlich mal eine lineare Darstellung, die aber in der Realität nicht erfolgt.
Mein Problem ist, dass ich die Zellfärbung für alle 3 Parameter nicht hinbekomme. Hierzu noch mal Aufgabe in Textform:
Das Bauteil "S1" kommt zur Verwendung wenn max. Breite 2500mm, max. Höhe 2500mm und das max. Gewicht 100kg beträgt. "S2" bei max Breite 3000mm, max Höhe 3000mm und max. Gewicht 150kg. U.s.w.! Das gleiche dann auch für das Bauteile "Antrieb" oder "STR", u.s.w. (es können also auch noch mehrere Bauteile in die Betrachtung kommen.
Die maximal 42 Farben von Excel sind mir bewußt. Aber die werden reichen, da das Rechenblatt immer nur 1 Bauteil (soll man auswählen können) betrachtet.
Hier noch mal Datei mit linearer Darstellung:

Die Datei https://www.herber.de/bbs/user/64981.xls wurde aus Datenschutzgründen gelöscht


Freundliche Grüsse
PointOfView
Oliver
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
10.10.2009 22:28:40
franc
Gibt immer noch Unstimmigkeiten ^^ (hab dir aber mal Probeblatt angehangen)
VBA Code ist noch nicht optimal aber ejal
In deinem Beispielblatt hast du beim 4. Wert Breite/Höhe = 4000 und Gewicht 250
Im Rechenblatt markierst du aber bis Breite 4500 und Gewicht 250,12
Warum das denn?
Aktuell ist es jetzt erstmal so
Er nimmt jede Zeile aus dem Parameterblatt und für den aktuellen Parameter macht er folgendes
Er sucht im Rechenblatt nach der Höhe bis der Wert kleiner/gleich ist und nimmt davon die zeilennummer
nun das gleiche mit der Höhe und davon die Spaltennummer
Jetzt kennt er den Schnittpunkt und auch das Gewicht was da steht. Ist dieses Gewicht größer als das vom Parameterblatt dann macht er aktuell nichts und nimmt das nächste Teil.
Wird alles gefunden und ist in Ordnung dann markiert der den Bereich Unterste linke Zeile (B45) bis zum gefundenen Schnittpunkt höhe/breite. Er markiert es aber nur dann, wenn die Zielzelle noch keine Farbe hat. Das ist natürlich nur dann sinnvoll, wenn die Parameterliste von den höhen/breitewerten ansteigt.
Farben
Aktuell über ein Array gelöst, wo bestimmte Farbnummern drinstehen (so kannst du dir die Farben aussuchen die du haben möchtest)
Auf dem Rechenblatt siehst die Farben und auch die Nummern. (stehen aktuell 12 farben drin - wenn 13 werte hast, kommt es aktuell zu einem Fehler)
Was noch zu klären ist:
- Was soll sein, wenn einer der Parameter nicht vorkommt? (höhe/Breite) sprich höhe ist 10000 was auf dem Rechenblatt nicht vorkommt
- Was ist wenn das Gewicht über dem liegt, was bei höhe/Breite im Rechenblatt steht? (aktuell ignoriert er das dann)
- sind die werte im Parameterblatt immer aufsteigend oder stehen die auch durcheinander?
Das ist wichtig für das markieren. Habe ich zum Beispiel Höhe 2000 - 4000 und Breite 2000 - 4000 markiert und es kommt jetzt ein Wert Höhe 3000, Breite 3000 würde er nichts markieren, weil die Zellen schon eingefärbt sind. Mit einer anderen Farbe überschreiben würde ja auch nicht sinn machen oder?
Aktuell können noch in bestimmten Situationen Fehler auftreten was das Makro beendet.
https://www.herber.de/bbs/user/65017.xls
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
12.10.2009 09:32:27
pointofview
Hallo franc,
zunächst mal herzlichen Dank für die Mühe die Du Dir machst.
Die Farbanzahl reicht aus. Das ist absolut in Ordnung. Nun zu Deinen offenen Fragen:
- Wenn ein Parameter nicht vorkommt (Bsp. Höhe 10.000mm) dann soll er nur bis zu den vorhandenen Parametern in der Matrix arbeiten (also im Beispiel bis 7.000mm)
- Wenn das Gewicht (und das ist einer der wichtigsten Punkte) im Parameterbereich über dem max. liegt, dann darf die Zellfärbung dort nicht erfolgen, sondern ggf. mit der Zellfärbung des nächsten Grössenbereich, in dem das Gewicht zulässig ist.
- Die Werte im Parameterblatt sind nicht zwingend linear auf- oder absteigend. Es gibt auch die Situation, dass in diversen Bereichen Schnittmengen entstehen, die aber mit den günstigsten Parameteren (also den kleinst möglichen) gefärbt sein sollen.
Ich hab noch mal zur Verdeutlichung den Matrixbereich manuell eingefärbt nach den Parametern aus dem Tabellenblatt "Parameterblatt". Ich hoffe das hilft etwas weiter.

Die Datei https://www.herber.de/bbs/user/65039.xls wurde aus Datenschutzgründen gelöscht


Viele Grüsse
PointOfView
Oliver
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
12.10.2009 17:27:39
franc
hmm ...
In deiner Beispieltabelle scheint jetzt wiederum nur das Gewicht eine Rolle zu spielen ^^
Bei allen markierten Einträgen wird im Rechenblatt das Gewicht überschritten.
Hier eine Beispieldatei wo nur das Gewicht verglichen wird. (es empfiehlt sich natürlich die Tabelle nach Gewicht zu ordnen - kann man aber auch in die Datei einbauen, das er das selbst erledigt)
Code dazu findest in Modul 3
Soll es so markiert werden oder haben die Parameter Breite und Höhe eine entscheidende Rolle?
Wenn ja, in welchem Maß?
https://www.herber.de/bbs/user/65052.xls
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
13.10.2009 10:24:50
pointofview
Halo franc,
Breite und Höhe haben eine entscheidende Rolle. Ich versuche es noch mal mit Worten zu umschreiben.
Ein Produkt wird in unterschiedlichen Grössen gefertigt (Bsp. Bagger). Je Grösser das Produkt wird, umso grösser muss die Leistung des Antrieb werden, desto massiver muss die Bauweise des Produktes sein und umso grösser werden diverse Bauteile am Produkt (Bsp. Hydraulik-Zylinder). Diese Bauteile (wie in diesem Beispiel) kommen nun grössen- und gewichtsabhängig zum Hauptprodukt zum Einsatz.
In der Matrix geht es nun darum, diverse Bauteile genau diesen Parametern Grösse und Gewicht zuzordnen. In meinem Beispiel sind das die Bauteile Motor, SRH oder STR (jeweils für sich selbst im Grössen- und Gewichtsbereich). Nur das Gewicht zu betrachten würde jetzt Grössenlimitierungen der Bauteile ausser Acht lassen. Bei unserem Produkt geht es zwar nicht um Bagger, aber das Prinzip ist das gleiche (ich hätte auch Autos mit Motor und Bremsen nehmen können).
Es bestehen nun ca. 20 Parametrierungen (20 Farben) zu einer solchen Matrix, die dann über die Grössenbereiche in zusätzlicher Abhängigkeit vom Gewicht spezielle Bauteile zulässt. Wird ein Grössenbereich, oder innerhalb eines Grössenbereich das Gewicht von einem Parameter (Bauteil) überschritten, darf das Bauteil dort nicht mehr eingesetzt werden. Es kommt dann ein anderes für diesen Bereich zugelassenes Bauteil zum tragen. Diese Bauteile sind alle in einer Parameterliste (wie das Tabellenblatt "Paramerblatt") gelistet. Nun sollen alle unterscheidlichen Abhängigkeiten innerhalb der Matrix farblich gestaltet werden, so dass man auf einen Blick und anhand eines Farbcodes die notwendigen Bauteile direkt erkennt. Daher ist das in meiner Beispieldatei:

Die Datei https://www.herber.de/bbs/user/65039.xls wurde aus Datenschutzgründen gelöscht

auch so abgehakt dargestellt.
Was ich halt nicht hinbekomme ist, erst einen Schnittpunkt in der Matrix zu ermitteln, diesen dann mit den maximalen Grössenbereichen der einzelnenen Parameter aus dem Parameterblatt zu vergleichen und dann noch das Gewicht zu berücksichtigen. Soweit geht mein Anfänger-VBA leider nicht. Aber ich bin lernfähig und versuche auch alles zu verstehen. Ich bitte um Nachsicht.
Viele Grüsse
PointOfView
Oliver
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
13.10.2009 14:03:43
pointofview
Hallo franc,
ich hab das Makro "Farben" ausgiebiger getestet und diverse Parametrierungen durchlaufen lassen. Das Ergebnis sieht bis jetzt ziemlich gut aus. Die Farben habe ich mir bis 20 Parameter und farblich angepasst.
Werde noch einige Parametervergleiche machen und geb Dir dann Rückinfo. Werd vor allem mal versuchen, den Code soweit zu entschlüsseln, so dass ich nachvollziehen kann, wie Du dort arbeitest. Allein für die bisherige Mühe vielen vielen Dank!!!!!
Viele Grüsse
PointOfView
Oliver
AW: Matrix mit Werten vergleichen und farblich darstel
13.10.2009 17:03:06
pointofview
Hallo franc,
ich hab noch´n bisschen geprüft und angepasst und es passt hervorragend.
Option Explicit
Sub Farbe()
'Q = Parameterblatt, R = Rechenblatt
Dim Akt_Teil, P_Zeile, P_Breite, P_Hoehe, P_Gewicht
Dim R_Hoehe As String, R_Breite As String, R_Gewicht As String, R_untere_Zeile
Dim R_Zeile, R_Spalte, varFarben As Variant, bFarbe As Byte
Dim blFarbe As Boolean
Dim H, B, F
On Error GoTo Fehler
Sheets("Parameterblatt").Visible = True
Sheets("Rechenblatt").Select
Application.ScreenUpdating = False
'varFarben = Array(40, 12, 6, 50, 48, 54, 45, 22, 23, 17, 9)
varFarben = Array(15, 48, 42, 35, 17, 47, 41, 38, 39, 36, 40, 45, 46, 3, 10, 43, 27, 0)
bFarbe = 0
R_Hoehe = "A5:A45"
R_Breite = "B3:CD3"
R_untere_Zeile = Sheets("Rechenblatt").Range("B5000").End(xlUp).Row - 1
' Spalte "Höhe" durchschauen bis Höhe kleiner/gleich dem Quellwert ist
For Akt_Teil = 6 To Sheets("Parameterblatt").Range("B500").End(xlUp).Row
With Sheets("Parameterblatt")
P_Breite = .Cells(Akt_Teil, 2)
P_Hoehe = .Cells(Akt_Teil, 3)
P_Gewicht = .Cells(Akt_Teil, 4)
End With
With Sheets("Rechenblatt")
For Each H In .Range(R_Hoehe)
' suchen bis ein Wert kleiner/gleich gefunden wird
If H = P_Breite Then
' Wenn ein Wert gefunden wurde dann R_Spalte die Spaltennummer zuordnen
If B = P_Breite Then
R_Spalte = B.Column
Exit For
Else
R_Spalte = B.Offset(0, -1).Column
End If
End If
Next
.Select
For Each F In Range(Cells(R_Zeile, 2), Cells(R_untere_Zeile, R_Spalte))
If F.Interior.ColorIndex = xlNone And F 
Sub Alle_Farben()
Dim i
For i = 1 To 56
Cells(i, 10).Interior.ColorIndex = i
Cells(i, 10) = i
Next
End Sub
Sub Farbe_Weg()
Sheets("Parameterblatt").Range("B6:G50").Interior.ColorIndex = xlNone
Sheets("Rechenblatt").Range("B5:CD45").Interior.ColorIndex = xlNone
End Sub
Sub Anpassen()
Dim cell As Range
For Each cell In Range("B5:CD45")
If cell.Value 
Nochmals, vielen Dank!
Grüsse
PointOfView
Oliver
Anzeige
AW: Matrix mit Werten vergleichen und farblich darstel
13.10.2009 18:28:37
franc
hmm - hab mein makro auch nochmal angepaßt ^^
schau nochmal meines an - dürfte nun keine fehler mehr enthalten und funkt. auch wenn die höhen/breitenwerte nicht vorkommen
hab auch alles kommentiert
https://www.herber.de/bbs/user/65068.xls

307 Forumthreads zu ähnlichen Themen


Liebe Leute,
ich habe zwei recht umfangreiche Tabellen mit Lieferdaten und dies in zwei von einander unabhängigen Tabellen.
In der Tabelle1 stehen neben anderen die Spalten Bestellnr. und Materialnr. sowie Lieferantennr. In der Tabelle2 stehen wiederum die Spalten Bestellnr. und Materia...
Anzeige

Hallo,
ich möchte bzw. muss zwei Tabellen (Tabelle1 und Tabelle2) in einer Arbeitsmappe zeilenweise und dann Spalte für Spalte vergleichen. Spalte 3 enthält jeweils einen eindeutigen Schlüssel (Nr.).
Mir wäre schon sehr geholfen, wenn ich wüsste, wie man eine größere Anzahl von Spalten...

hallo zusammen
Ich habe gerade folgendes Problem. ich habe zwei tabellen (dateien), in denen personendaten gespeichert sind. in tabelle 1 stehen kontaktdaten, in tabelle 2 "administrative" daten. nun möchte cih die spalte a von tabelle 2 den passenden datensätzen von tabelle 1 anfügen. einz...
Anzeige

Ich benutze 2 Sheet zum auswerten von Daten. Im Sheet „N2“ möchte ich gerne das eine gewisse Zahl von Sheet „SAP“ übertragen wird.
Ich suche eine Formel die folgendes kann:
Durchsuche in „N2“ die Spalte A2 nach unten und vergleiche sie mit „SAP“ Spalte A2. Werden zwei gleiche Zahlen gef...


Hallo,ich habe zwei Spalten, die ich miteinander vergleichen will [A1:A10] und [B1:B10].
Ist in [A1:A10] ein Wert, der in der entsprechenden Zeile in [B1:B10] ebenfalls vorhanden ist, so soll dieser als "1" gezählt werden.Bsp.:
A1= 1
A2= 2
A3= 3
A4= 4
A5= 5
A6= 6
A7=...

Hallo zusammen,
ich habe folgende Daten in nur einer Spalte vorliegen A1:A6
Blau
13
14
Braun
9
11
Mein Problem ist, dass ich nicht weiß wie ich diese Werte so trennen kann, damit ich in ZWEI Spalten die Info und Zuordnung erhalte:
13 Blau
14 Blau
9 Br...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige