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

Bedingtes Format mit VBA auslesen

Bedingtes Format mit VBA auslesen
30.09.2004 18:02:47
Lorenz
Hallo zusammen!
Mein PROBLEM!!!!!!!!!!!!!!
Eine Bedingte Formatierung die mittels VBA erstellt wird kann, bzw. wird nicht mittels CODE ausgelesen. Bei Recherchen stiess ich auf die Empfehlung, bzw. Tipp von HWH, die lautet "Bedingte Formatierung auf Wahrheitsgehalt überprüfen". Soweit so gut! Aber wie soll die nachgenannte Formel im Code interpretiert werden?
Formel:
=ODER(UND(AK$2>=$H11;AK$2 UND(AK$2>=$J11;AK$2 UND(AK$2>=$L11;AK$2 CODEZEILE:
If iDate = Cells(2, iColDat).Value And Cells(iNextRow, iColDat).Interior.ColorIndex = 15 Then _
Cells(iNextRow, 4).Font.ColorIndex = 3
statt "Interior.ColorIndex = 15" gehört die Überprüfung im Sinne obgenannter Formel
Danke im Voraus für die Mühe.
Gruss Lorenz
AW: Bedingtes Format mit VBA auslesen
30.09.2004 18:05:54
Hajo_Zi
Hallo Lorenz,
das überprüfen ob die bedingte Formatierung erfolgt ist. Ist meiner Meinmung nach das komplizierteste was es gibt. Auf meine HP, Seite Fremde Dateien habe ich dazu mal ein Beispiel.
http://home.media-n.de/ziplies/gepackt/fremd/bedingte_form_auslesen.zip
Da kommst Du schneller ran wenn Du in VBA die Bedingung der Bedingten Formatierung nachbaust.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro SP2 und Excel Version 2003 SP1.


Anzeige
woher kommst du wierder
30.09.2004 18:08:21
Stephan
..
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hallo Hajo!
genau um dieses "NACHBAUEN" gehts eigentlich.
Ich schaffte es nur nicht
"=ODER(UND(AK$2>=$H11;AK$2 UND(AK$2>=$J11;AK$2 UND(AK$2>=$L11;AK$2 Gruss Lorenz
AW: Bedingtes Format mit VBA auslesen
30.09.2004 18:34:53
Hajo_Zi
Hallo Lorenz,
schreibe die Formel in eine Zelle, Starte den Makrorecorder gehe in die Zelle Enter und Aufzeichnung beenden. Da hast Du doch schon einen guten Ansatz
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro SP2 und Excel Version 2003 SP1.


Anzeige
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hallo Hajo!
mit der (bedingte_form_auslesen) Funktion "GetCellColor" wird der ColorIndex ausgegeben.
wie muss ich die Funktion einsetzen um (mit eigenen Worten): "if GetCellColor = 15 then.....----statt " statt "Interior.ColorIndex = 15""
hab es unter anderem so probiert:
If iDate = Cells(2, iColDat).Value And GetCellColor(Cells(iNextRow, iColDat)) = 15 Then
Cells(iNextRow, 4).Font.ColorIndex = 3
so gehts aber nicht!
Gruss Lorenz
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
der einfache, aber leider nicht so komfortable Weg ist, die Formel der Bedingung
auszulesen(Formatconditions(1).Formula1)und in eine Zelle zu schreiben. Dort ergibt
die Formel entweder FALSCH oder WAHR, was du dann auswerten kannst. Das muss natürlich
ggf. für alle drei Bedingungen gemacht werden.
Den umständlichen aber komfortablen Weg erspare ich mir.
Gruß K.Rola
Anzeige
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hallo K.Rola!!
mit Tipp von Hajo habe ich eine fertige Funktion gefunden. Jetzt gehts aber darum, diese einzusetzen.
mit der Funktion "GetCellColor" wird der ColorIndex ausgegeben.
wie muss ich die Funktion einsetzen um (mit eigenen Worten): "if GetCellColor = 15"
hab es unter anderem so probiert:
If iDate = Cells(2, iColDat).Value And GetCellColor(Cells(iNextRow, iColDat)) = 15 Then
Cells(iNextRow, 4).Font.ColorIndex = 3
so gehts aber nicht!
Gruss Lorenz
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
ich weiß nicht, was du da für eine Funktion bekommen hast, poste mal den Code.
Gruß K.Rola
Anzeige
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hi K.R.!
Anbei der CODE

Sub TestCellColor()
MsgBox GetCellColor(ActiveCell), , "Meine Farbe ist:"
End Sub


Function GetCellColor(cell As Range) As Integer
Dim i
Dim myVal
Dim myColor As Integer
Dim done As Boolean
On Error Resume Next
Names("testname").Delete
On Error GoTo 0
Application.ReferenceStyle = xlR1C1
myVal = cell.Value
myColor = cell.Interior.ColorIndex
done = False
For i = 1 To cell.FormatConditions.Count
With cell.FormatConditions.Item(i)
If .Type = 1 Then
Select Case .Operator
Case xlBetween
If (myVal >= Evaluate(.Formula1) And myVal <= Evaluate(.Formula2)) _
Or (myVal <= Evaluate(.Formula1) And myVal >= Evaluate(.Formula2)) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlEqual
If myVal = Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreater
If myVal > Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreaterEqual
If myVal >= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLess
If myVal < Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLessEqual
If myVal <= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotBetween
If myVal < Evaluate(.Formula1) Or myVal > Evaluate(.Formula2) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotEqual
If myVal <> Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
End Select
ElseIf .Type = 2 Then
Names.Add Name:="testname", RefersToR1C1Local:=.Formula1
If Evaluate("testname") Then
myColor = .Interior.ColorIndex
done = True
End If
Names("testname").Delete
Else
MsgBox "Unbekannter Typ: " & .Type, , "PANIC: In 

Function GetCellColor"
Exit Function
End If
End With
If done Then Exit For
Next
Application.ReferenceStyle = xlA1
GetCellColor = myColor
End Function

Grüsse Lorenz
Anzeige
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
beschreib mal mit Worten, was passieren soll, wenn du die Farbe ausgelesen hast.
Gruß K.Rola
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hallo K.Rola!
In untenstehenden CODE soll statt ".Interior.ColorIndex = 15" wenn die Farbe ausgelesen wurde der .Font.ColorIndex wie gehabt auf 3 gesetzt werden.

Sub SchriftEinfaerben()
Dim iDate As Integer, iRow As Integer, iColDat As Integer, iNextRow As Integer
iDate = (Day(Now))
iRow = 3
For iColDat = 14 To 44
For iNextRow = iRow To 47
If iDate = Cells(2, iColDat).Value And Cells(iNextRow, iColDat).Interior.ColorIndex = 15 Then _
Cells(iNextRow, 4).Font.ColorIndex = 3
End If
Next
Next
End Sub

mit dem Code funkts ja perfekt , aber leider nur bei manuell gesetzter Formatierung(nicht aber bei Bedingter)!
Grüsse Lorenz!
Anzeige
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
If iDate = Cells(2, iColDat).Value And GetCellColor(Cells(iNextRow, iColDat)) = 15 Then
Gruß K.Rola
AW: Bedingtes Format mit VBA auslesen
Lorenz
Hallo K.Rola!
Leider nicht.
So setzt es alles in Spalte 4 auf Font Index = 3
Grüsse Lorenz
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
lad mal eine Beispielmappe hoch, sonst stochern wir noch ein Weilchen im Nebel.
Gruß K.Rola
AW: Bedingtes Format mit VBA auslesen
K.Rola
Hallo,
die Bedingung stimmt schon, nur deine Funktion versagt.
Gruß K.Rola

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige