5.4k Aufrufe
Gefragt in Tabellenkalkulation von florian1010 Mitglied (754 Punkte)
Hallo zusammen,

in einer Spalte habe ich Zellen mit genauen Maßangaben (L X B X H). Nun möchte ich, dass wenn die B(reite) größer als 3,01 Meter ist, die Zelle farbig markiert wird.

Habe es mit rechts und links versucht, sobald aber in einer Zelle mehrere Zeilen mit Maßangaben gibt, hätte meine Formel schon verloren.

Die Zellen in Excel 2007 sehen beispielsweise so aus:

in Zelle J2

3,00 x 2,20 x 2,85

in Zelle J3 - Zelle sollte markiert werden

2,20 x 0,80 x 1,25
3,50 x 1,60 x 2,20
4,50 x 3,10 x 2,20

in Zelle J4 - Zelle sollte markiert werden

4,50 x 3,25 x 4,00

Es ist leider momentan noch nicht möglich, die Maße auf 3 Spalten aufzuteilen.

Kann mir hier jemand bei helfen.

Vielen Dank schon mal im Voraus

Gruß
Florian

23 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Florian,

das mit dem Einfärben kannst du über die bedingte Formatierung lösen:

Start - Bedingte Formatierung - Neue Regel - Formel zur Ermittlung der zu formatierenden Zellen verwenden

Für die Zelle J2 nimmst du folgende Formel:
=WERT(TEIL(J2;FINDEN("x";J2)+2;4))>3,01

Dann musst du dir noch eine Farbe aussuchen, in der die Zelle formatiert werden soll.

in Zelle J3 - Zelle sollte markiert werden

2,20 x 0,80 x 1,25
3,50 x 1,60 x 2,20
4,50 x 3,10 x 2,20


Verstehe ich das richtig, dass alle drei Datensätze untereinander in der Zelle J3 stehen?
Falls das so ist, solltest du jeden Datensatz einzeln in eine Zelle schreiben, denn so kann man das kaum verarbeiten.

Gruß

M.O.
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Hallo M.O.

danke für deine Antwort. Die Formel klappt einwandfrei - kannst du sie mir nur noch kurz erklären?

Du hast es (leider) richtig verstanden, dass es auch Zellen gibt, bei denen mehrere Maße untereinander in einer Zelle stehen. Das ergibt sich aus einem Makro (UserForm) in der ich die Maße eingebe.

Die dürfen auch nicht gesplittet werden, da diese zu einem Gesamten gehören.

Gruß
Florian
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Florian,

für J2 funktioniert in der Bedingten Formatierung folgende Formel:

=--TEIL(J2;FINDEN("x";J2)+2;4)>3,01

Gruß
Rainer
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Florian,

WERT wandelt einen Textwert in eine Zahl um
TEIL gibt einen Teil eines Textes wieder (hier die Breite): 4 Zeichen ab dem ersten X plus 2
FINDEN gibt die Position an, an der das erste x steht, dazu werden 2 addiert, damit die Breite richtig zurückgegeben wird

Den Aufbau der Formeln kannst du dir in der Excel-Hilfe genauer ansehen.

Gruß

M.O.
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Florian,

Die Erklärung von @M.O. trifft auch au meine Formel zu.
Ich habe lediglich eine andere Form der Umwandlung gewählt.
Die zwei Minuszeichen vor TEIL... ersetzen die Funktion WERT()

Eine weitere Möglichkeit wäre die Multiplikation mit 1

=TEIL(J2;FINDEN("x";J2)+2;4)*1>3,01

Gruß
Rainer
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Vielen Dank für Erklärung(en). Ich lerne hier täglich dazu. Find ich klasse.

Hat mir doch schon einiges weiter geholfen.

Für die Zellen, in denen mehrere Werte stehen gibt es also leider so keine Möglichkeit, habe ich das richtig verstanden?

Gruß
Florian
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Florian,

du schreibst
Das ergibt sich aus einem Makro (UserForm) in der ich die Maße eingebe.


Vielleicht könnte man bereits bei der Eingabe die Breite prüfen und dann die Zelle entsprechend einfärben, wenn die Daten in die Tabelle geschrieben werden.

Per Formel fällt mir da auf anhieb keine Lösung ein.

Gruß

M.=.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Gruß

M.=.


Muß natürlich heißen:

Gruß

M.O.
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Hallo M.O.,

das Makro sieht folgender maßen aus:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim vntV As Variant, intIndex As Integer

If Target.Column = "2" Then Call UserForm3.Show
'UserForm3.TextBox1.Value = Target.Value


If Target.Column = 10 And Target.Row > 1 Then
Cancel = True
With UserForm1
If Target <> "" Then
vntV = Split(Target.Text, vbCrLf)
For intIndex = 0 To UBound(vntV)
.Controls("TextBox" & CStr(intIndex * 2 + 1)).Value = Application.Clean(Trim$(Split(vntV(intIndex), "x")(0)))
.Controls("TextBox" & CStr(intIndex * 2 + 2)).Value = Application.Clean(Trim$(Split(vntV(intIndex), "x")(1)))
Next
End If
.Show
End With
End If
End Sub

Ich wüsste jetzt ehrlich gesagt nicht, wo und wie ich dort die Abfrage und die Einfärbung unterbringen könnte.

Gruß
Florian
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Florian,

kannst du mal eine Beispieldatei (mit der Userform) hochladen, z.B. hier, und den entsprechenden Link posten?

Dann kann man nämlich mal etwas probieren :-).

Gruß

M.O.
...