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

Format als Bedingung

Format als Bedingung
13.12.2004 20:56:54
Werner
Hallo Forum,
ich habe in einem Tabellenblatt 30 Vorlagen (Nr. 1 - 30) erstellt und ihnen Namen gegeben.
Auf einem anderen Tabellenblatt habe ich in Spalte A (A1 bis A30) die Nummern 1 - 30 eingegeben.Sobald eine Vorlage ausgefüllt wird ändert sich die Hintergrundfarbe der entsprechenden Nr. in Spalte A durch bedingte Formatierung.
Von diesem Tabellenblatt rufe ich auch dann per Makro die einzelnen Vorlagen auf.
Soweit so gut.
Nun möchte ich aber dass sich nur Vorlagen aufrufen lassen die einen farblich unterlegten Hintergrund durch die bedingte Formatierung haben,die also ausgefüllt sind.
Wie lautet der Code hierfür?
Gruß Werner

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format als Bedingung
Hübi
Hi Werner,
ich habe von VBA zwar fast keine Ahnung, aber die Recherche in diesem Forum
https://www.herber.de/forum/archiv/132to136/t134835.htm#134835
sagt mir, das geht nicht!!!!
Du hättest mit Sicherheit schon zig Antworten - so oft wie du diese Frage schon gestellt hast.
Frage noch offen
Gruß Hübi
AW: Format als Bedingung
13.12.2004 21:31:33
Werner
Hallo Hübi,
dank Dir für Deine Antwort aber Du siehst ja selber mit welchen Antworten hier ein Thread (11.12. 17.51 Uhr) geschlossen werden kann.Musste es einfach nochmal versuchen.
Gruß Werner
Anzeige
So geht es....
Ramses
Hallo
probier mal das:
Hier ein Beispiel wie der Bereich A1:A10 getestet werden kann
Option Explicit

Sub TestCellColor()
Dim i As Integer
Dim chkRange As Range
For i = 1 To 10
'Testet den Bereich A1 : A10
Set chkRange = Cells(i, 1)
If GetCellColor(chkRange) <> -4142 Then
MsgBox "Meine Farbe ist:" & GetCellColor(chkRange)
Else
MsgBox "Keine Formatierung an dieser Zelle"
End If
End Sub


Function GetCellColor(cell As Range) As Integer
Dim i As Long
Dim myVal As Variant
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) 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

Gruss Rainer
Anzeige
AW: So geht es....
13.12.2004 21:53:03
Werner
Hallo Rainer,
danke für Deine Mühe,ist ja ein wahrhaft riesiges Paket.Werde es morgen checken.
Gruß Werner
AW: So geht es....
Ramses
Hallo
"...Werde es morgen checken...."
Na da bin ich mal gespannt
Gruss Rainer
da fehlt noch ein Next...
13.12.2004 22:06:56
Christoph
Hi Rainer,
nettes Bsp!
nur der Vollständigkeit halber...bevor es zu weiteren Fragen kommt
da fehlt noch das Schleifen-Ende.
Gruß
Christoph

Sub TestCellColor()
Dim i As Integer
Dim chkRange As Range
For i = 1 To 10
'Testet den Bereich A1 : A10
Set chkRange = Cells(i, 1)
If GetCellColor(chkRange) <> -4142 Then
MsgBox "Meine Farbe ist:" & GetCellColor(chkRange)
Else
MsgBox "Keine Formatierung an dieser Zelle"
End If
Next i
End Sub

Anzeige
Danke :-))
Ramses
Hallo
wenigstens einer der es wirklich ausprobiert :-)
Gruss Rainer
AW: So geht es....
Hübi
Hi Rainer,
dein Code überprüft leider auch keine "Bedingt-Formatierten" Zellen, sondern nur mit Hintergrundfarbe versehene. Darum auch mein Vorschlag an Werner, die Zellen über Code einfärben zu lassen - dann ist die Farbe auch wieder auslesbar.
Gruß Hübi
P.S. Habe von VBA leider 0 Ahnung
AW: So geht es....
Ramses
Hallo
hast du das mal überhaupt mal ausprobiert ? :-(
https://www.herber.de/bbs/user/14794.xls
Danach bitte ich um einen Kommentar ;-)
Gruss Rainer
Anzeige
AW: So geht es....
Hübi
Hi Rainer,
habe dein Beispiel getestet - klappt. Nutze ich allerdings nur den Code von vorhin - klappt nicht.
Schau mal diese Datei https://www.herber.de/bbs/user/14795.xls
- Code, der in deiner Datei funzt reinkopiert - funzt bei mir nicht?!?!
Gruß Hübi
P.S.: Habe von VBA keine Ahnung
Interessant...
Ramses
Hallo
Setz in deiner Datei bei der bedingten Formatierung die Bezüge mal absolut.
=$C$1 = 4
und das für jede Bedingung
Dann geht es :-)
Muss mal schauen, warum das so ist.
Ich kann mir bloss vorstellen, dass er den Bezug, bzw. die Formel daraus, nicht auswerten kann.
Bei einem relativen Bezug "=C1=4" erhalte ich als auszuwertende Formel "=ZS(2)=4", bei einem absoluten Bezug "=$C$1 =4" erhalte ich "=Z1S3=4".
Muss mal noch drüber nachdenken ;-)
Gruss Rainer
Anzeige
AW: Interessant...
Hübi
Hi Rainer,
interessantes Problem. Es ist zwar nicht meins, interessiert mich aber, warum das so ist.
Werde mir das nach dem Frühstück auch noch einmal ansehen.
Hier geht es um das Auslesen von "Bedingten Zellformaten". Es wäre schön, wenn es für alle Bezugsarten gehen würde.
Setz in deiner Datei bei der bedingten Formatierung die Bezüge mal absolut will ich aber nicht.
Danke für deine Aufopferung - hilft uns allen.
Gruß Hübi
P.S.:Wichtig - Ich habe von VBA keine Ahnung
AW: Format als Bedingung
Hübi
Hi Werner,
meinst du ..... und tschüß Kurt?
Da sage ich nur, du hast ihm richtig geantwortet - niemand ist zur Antwort verpflichtet.
Noch ein Hinweis zu deinem Problem:
Lass die Zellen über VBA-Code einfärben - dann ist auch dein Prob. zu klären (Farben auszulesen).
Ich kann dir da aber leider nicht helfen.
Gruß Hübi
Anzeige
AW: Format als Bedingung
Kurt
...aber verhindern kann es auch keiner und meine Meinung werde ich immer wieder kundtun
...und Tschüss Kurt
... das will auch niemand ...und Tschüss
@Kurt
AW: Format als Bedingung;an Ramses
15.12.2004 10:31:36
Werner
Hallo Rainer,
wieso hast Du den Eindruck ich würde das nicht probieren,dann bräuchte ich ja nicht um Hilfe zu bitten.Tut mir leid bin zur Zeit im Schichtbetrieb musste dringend weg,kam Dir vielleicht überhastet vor?
Habe also ausprobiert was Du mir geschickt hast und auch erkannt dass es bei relativen Bezügen nicht geht.Ich habe meinen Bereichen Namen gegeben,damit geht es auch.
Unheimlich schwer tu ich mir allerdings mit dem Code wenn ich die Bedingung stelle (Wenn die Hintergrundfarbe weiß ist dann bring eine Meldung,sonst zeige den gewünschten Bereich an).Habe diverse Versuche gestartet (begann meist mit: IF RANGE("e_1") ="" :und genau diese Passage wird im Modul gelb unterlegt und Fehler gemeldet,kriege es einfach nicht gebacken und möchte nochmals betonen dass ich noch ziemlich Youngster bin im Umgang mit VBA.
Wenn Du hierfür noch nen kleinen Tipp hättest?
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige