kann mir jemand sagen, wie ich in Excel nach einer Farbe suchen lasse und wenn die Farbe gefunden wurde ein Wert in Excel bspw. direkt neben der Spalte mit der Farbe eintragen lasse?
Bsp.: Ich möchte, dass in Spalte B nach Rot gesucht wird und wenn Rot gefunden wurde in Spalte A eine „N“ eingetragen wird. Dann soll weitergesucht werden und wenn Gelb gefunden wird soll in Spalte A ein „Ä“ eingetragen werden.
Ich denke mir mal, dass so etwas wenn überhaupt nur mit VBA realisiert werden kann.
kann mir jemand sagen, wie ich in Excel nach einer Farbe
suchen lasse und wenn die Farbe gefunden wurde ein Wert in
Excel bspw. direkt neben der Spalte mit der Farbe eintragen
lasse?
Bsp.: Ich möchte, dass in Spalte B nach Rot gesucht wird und
wenn Rot gefunden wurde in Spalte A eine „N“ eingetragen wird.
Dann soll weitergesucht werden und wenn Gelb gefunden wird
soll in Spalte A ein „Ä“ eingetragen werden.
Ich denke mir mal, dass so etwas wenn überhaupt nur mit VBA
realisiert werden kann.
Hi fifa,
jain, geht auch mit Namen definieren. Aber egal wie, wichtig ist folgende Klärung, kam die Farbe manuell in die Zelle(n) oder durch bed. Formatierung?
Gruß
Reinhard
könntest mir ja beide Möglichkeiten schreiben. Denn für mich
wären beide nützlich.
Hi fifa,
warum beantwortest du nicht meine Frage?
Sind die Farben manuell eingetragen geht beides.
Kommen sie aus bed. Formatierung geht nur Vba.
Gruß
Reinhard
die Sache ist, dass ich die Datei von Kollegen aus dem Ausland bekommen habe und deswegen nicht genau weiß, wie die Kollegen bzgl. der Formatierung vorgegangen sind. Allerdings würde ich mal vermuten, dass die Farben manuell eingetragen wurden, da all das markiert wurde, was neu ist resp. sich geändert hat.
Gruß
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
die Sache ist, dass ich die Datei von Kollegen aus dem Ausland
bekommen habe und deswegen nicht genau weiß, wie die Kollegen
bzgl. der Formatierung vorgegangen sind. Allerdings würde ich
mal vermuten, dass die Farben manuell eingetragen wurden, da
all das markiert wurde, was neu ist resp. sich geändert hat.
Hi fifa,
Na und rufe sie an und frage. Weil es ist immens wichtig.
Wenn die Farbe manuell eingetragen ist langt der Pseudocode:
Wenn Zelle A12 blau ist dann mach dies oder jenes
Kann man in Vba als 5Zeiler oder mit Namen definieren in 2 Minuten programmieren.
Kam die Farbe nicht manuell sondern durch Bed Formatierung brauchste sowas wie nachfolgend und du siehst, es is aufwendiger, auch wenn jetzt der Beispielcode an sich was anderes bewirkt.
Btw, Gruß an Micha
Gruß
Reinhard
Option Explicit
Public strBedingte\_Formatierung As String
Public Zelle As Range
Public i As Byte
Sub BedingteFormatierungEinlesen()
If Selection.FormatConditions.Count \> 0 Then
strBedingte\_Formatierung = "Bedingte Formatierung:" & vbLf
Else: Exit Sub
End If
For Each Zelle In Selection
For i = 1 To Zelle.FormatConditions.Count
strBedingte\_Formatierung = strBedingte\_Formatierung & Zelle.Address(0, 0) & ": "
With Zelle.FormatConditions.Item(i)
If .Type = 1 Then
strBedingte\_Formatierung = strBedingte\_Formatierung & "ZELLWERT IST "
Select Case .Operator
Case 1
strBedingte\_Formatierung = strBedingte\_Formatierung & "ZWISCHEN "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & " "
strBedingte\_Formatierung = strBedingte\_Formatierung & "2.Bedingung= " & .Formula2 & vbLf
erfüllte\_bedingung
Case 2
strBedingte\_Formatierung = strBedingte\_Formatierung & "NICHT ZWISCHEN "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & " "
strBedingte\_Formatierung = strBedingte\_Formatierung & "2.Bedingung= " & .Formula2 & vbLf
erfüllte\_bedingung
Case 3
strBedingte\_Formatierung = strBedingte\_Formatierung & "GLEICH "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
Case 4
strBedingte\_Formatierung = strBedingte\_Formatierung & "UNGLEICH "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
Case 5
strBedingte\_Formatierung = strBedingte\_Formatierung & "GRÖSSER "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
Case 6
strBedingte\_Formatierung = strBedingte\_Formatierung & "KLEINER "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
Case 7
strBedingte\_Formatierung = strBedingte\_Formatierung & "GÖSSER GLEICH "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
Case 8
strBedingte\_Formatierung = strBedingte\_Formatierung & "KLEINER GLEICH "
strBedingte\_Formatierung = strBedingte\_Formatierung & "1.Bedingung= " & .Formula1 & vbLf
erfüllte\_bedingung
End Select
ElseIf .Type = 2 Then
strBedingte\_Formatierung = strBedingte\_Formatierung & "FORMEL IST "
strBedingte\_Formatierung = strBedingte\_Formatierung & .Formula1 & vbLf
erfüllte\_bedingung
Else
MsgBox "Unbekannter Typ: " & .Type & vbLf & "Admin anrufen (oder eben Reinhard \*grins\*)!"
Exit Sub
End If
End With
Next
Next Zelle
Stop
End Sub
Sub erfüllte\_bedingung()
With Zelle.FormatConditions.Item(i).Interior
'Farbe
If Zelle.Interior.ColorIndex .ColorIndex Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zelle " & Zelle.Address(0, 0) & " mit dem Colorindex " & .ColorIndex & " eingefärbt" & vbLf
'Muster
If Zelle.Interior.Pattern .Pattern Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zelle " & Zelle.Address(0, 0) & " mit dem Muster " & .Pattern & "versehen" & vbLf
'Musterfarbe
If Zelle.Interior.Pattern .PatternColorIndex Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird das Zellenmuster " & Zelle.Address(0, 0) & " mit der Farbe " & .PatternColorIndex & "versehen" & vbLf
End With
With Zelle.FormatConditions.Item(i).Font
'Schriftfarbe
If Zelle.Font.ColorIndex .ColorIndex Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zellenschrift " & Zelle.Address(0, 0) & " mit dem" & .ColorIndex & " eingefärbt" & vbLf
'Schriftart
If Zelle.Font.Name .Name Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zelle " & Zelle.Address(0, 0) & " mit dem Font " & .Name & " versehen" & vbLf
'Schriftstärke
If Zelle.Font.FontStyle .FontStyle Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zelle " & Zelle.Address(0, 0) & " mit der Schriftstärke " & .FontStyle & " versehen" & vbLf
'Schriftgrösse
If Zelle.Font.Size .Size Then strBedingte\_Formatierung = strBedingte\_Formatierung & "Bei erfüllten Bedingungen wird die Zelle " & Zelle.Address(0, 0) & " mit der Schriftgrösse " & .Size & " versehen" & vbLf
End With
'noch offen :frowning: gibt es die Möglichkeiten alle ? \*grummel\*
' With Selection.Font
' .Strikethrough = False
' .Superscript = False
' .Subscript = False
' .OutlineFont = False
' .Shadow = False
' .Underline = xlUnderlineStyleNone
' End With
' Selection.Borders(xlDiagonalDown).LineStyle = xlNone
' Selection.Borders(xlDiagonalUp).LineStyle = xlNone
' With Selection.Borders(xlEdgeLeft)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = xlAutomatic
' End With
' With Selection.Borders(xlEdgeTop)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = xlAutomatic
' End With
' With Selection.Borders(xlEdgeBottom)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = xlAutomatic
' End With
' With Selection.Borders(xlEdgeRight)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = xlAutomatic
' End With
End Sub
Ich habe es jetzt mal getestet. Nur irgendwe klappt das bei
mir nicht so richtig. Kannst du mir evtl. mal eine
Beispiel-Datei zu schicken?
Hi Fifa,
es funktioniert. Hast du F9 gedrückt oder in beliebige andere zelle einen beliebigen Wert eingegeben, erst dann wird es ausgeführt!?
Wenn es dann immer noch nicht geht, lade eine beispieldatei bei http://www.badango.com hoch.
Gruß
Reinhard
Problem ist, dass ich nicht genau weiß, wie du das mit Namen festlegen und dann mit Formel „=ZELLE.ZUORDNEN(63;Tabelle1!B1)+0*JETZT()“ eintragen meinst. Habe es zwar so versucht, aber die Formel wird nicht aktzepiert.
Problem ist, dass ich nicht genau weiß, wie du das mit Namen
festlegen und dann mit Formel
„=ZELLE.ZUORDNEN(63;Tabelle1!B1)+0*JETZT()“ eintragen meinst.
Habe es zwar so versucht, aber die Formel wird nicht
aktzepiert.
habe jetzt mal eine Test-Datei (www.dofc.de/test/test.zip)
hochgeladen. Passwort schick ich per E-Mail
Hi Fifa,
ich fühle mich verschaukelt, du fragst nach einer Excel-Lösung für eine OO-Datei (.ods) ohne zu erwähnen dass es sich um eine OO-Datei handelt.
Tipp, stelle die Anfrage neu, mit allen Infos und wenn du eine Datei hochlädst, lass den Schnickschnack mit Passwort weg.
Für mich ist deine Anfrage hier erledigt.
Gruß
Reinhard