Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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
Inhaltsverzeichnis

Bedingte Formatierung

Bedingte Formatierung
01.07.2013 12:04:11
Pitt
Hi
ich hab hier einen Code von Hajo hab meine Daten eingegeben. Wenn ich das verwende für noch mehr bereiche bekomme ich eine Fehlermeldung und der Bereich "Set RaBereich = Union(Range" wird Gelb. Wenn das für den ganzen Bereich macheklappt das zwar aber nur wenn ich Zb. die 1,2,3 reinschreibe. Ich hab da eine Formel drin die die Zahlen ergeben und das klappt nicht. Kann mir da einer helfen?
mfg Pitt
Option Explicit ' Variablendefinition erforderlich
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                     *
'* 06.08.10                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
'Set RaBereich = Range("C20:AG20")
' noch mehr Bereiche
Set RaBereich = Union(Range("C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
' Zelle die in dem Bereich liegen auf die Variable schreiben
' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
' jede Zelladresse ist einzeln angegeben
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
Select Case UCase(.Value)   ' Umwandlung der Eingabe in Großbuchstaben
Case "1"
' Füllfarbe Schwarz
.Interior.Color = 0
' Schriffarbbe weiß
.Font.Color = 16777215
' Zellenformat Standard
.NumberFormat = "General"
Case "2"
' Füllfarbe Gelb
.Interior.Color = 65535
' Schriffarbe automatisch
.Font.ColorIndex = xlAutomatic
' Zellenformat Standard
.NumberFormat = "General"
Case "3"
' Füllfarbe Rot
.Interior.Color = 255
' Scgriftfarbe Weiß
.Font.Color = 16777215
' Zellformat nicht sichtbar
.NumberFormat = ";;;"
Case "4"
' Füllfarbe Grün
.Interior.Color = 65280
' Schriftfarbe automatisch
.Font.ColorIndex = xlAutomatic
' Zellenformat Standard
.NumberFormat = "General"
Case "KLAUS"
' Füllfarbe blau
.Interior.Color = 16711680
' Schriftfarbe Grau - 25%
.Font.Color = 12632256
' Zellenformat Standard
.NumberFormat = "General"
Case Else
' keine Füllfarbe
.Interior.ColorIndex = xlNone
' Schriftfarbe automatisch
.Font.ColorIndex = xlAutomatic
' Zellenformat Standard
.NumberFormat = "General"
End Select
End With
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                 ' Variable leeren
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung
01.07.2013 12:15:06
Hajo_Zi
Das Change Ereignis wirkt nur bei Eingaben.
Benutze das Beispiel für Formeln.

AW: Bedingte Formatierung
01.07.2013 12:24:38
Pitt
Hi Hajo
welches beispiel ist das? kannst du mir das bitte sagen. Fang erst an.
mfg Pitt

AW: Bedingte Formatierung
01.07.2013 12:32:04
Luschi
Hallo Pitt,
die Anzahl der Übergabeparameter in Funktionen ist meist auf 30 begrenzt, Brauchst Du noch mehr _ Bereiche, dann mache es so:

Dim RaBereich1 As Range, RaBereich2 As Range, RaBereich3 As Range
Set RaBereich1 = Union(Range("C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26:AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
Set RaBereich2 = Union(Range("C120:AG120, C122:AG122 , C124:AG124"), _
Range("C126:AG126, C128:AG128, C130:AG130, C132:AG132 , C134:AG134 , C136:AG136"), _
Range("C138:AG138 , C139:AG139 , C141:AG141 , C143:AG143 , C145:AG145 , C146:AG146"), _
Range("C148:AG148 , C149:AG149, C151:AG151 , C153:AG153 , C155:AG155"), _
Range("C157:AG157 , C159:AG159 , C161:AG161"))
Set RaBereich3 = Union(RaBereich1, RaBereich2)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Bedingte Formatierung
01.07.2013 12:36:46
Pitt
Danke Luschi für die hilfe. Ich weiß aber noch nicht welches das beispiel von Hajo ist für die Formeln.
mfg Pitt

...und außerdem handelt es sich ja hierbei ...
01.07.2013 14:46:10
Luc:-?
…strenggenommen nicht um BedingtFormatierung (Conditional Formatting), Luschi, ;-)
sondern um (Direkt-)Formatierung nach Bedingungen (formatting on conditions), was bekanntlich ein großer Unterschied ist, da hier 2 unterschiedl Objekte formatiert wdn. Viell würde Pitt da auch die dynamisierte BedingtFormatierung (RECHERCHE-Stichwort) weiterhelfen…
Desweiteren wird, zumindest für einen weniger erfahrenen Anwender, das Worksheet_Change-Ereignis ziemlich blockiert. Da sollte man wg der Übersichtlichkeit besser mit Auslagerung der eigentl Prozedur arbeiten.
Grüß mir meine Uni-Stadt, Luc :-?

Anzeige
AW: Bedingte Formatierung
01.07.2013 12:51:18
Pitt
Danke Hajo für deine Hilfe.
mfg Pitt

AW: Bedingte Formatierung
01.07.2013 23:25:49
Pitt
Hi
wenn ich den Code so anwende bekomme ich eine Fehlermeldung:"Die Methode Range für das Objekt Worksheet ist fehlgeschlagen" und dieser Bereich wird dann Gelb Markiert:"Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))"

Kann mir jemand sagen was ich falsch gemacht habe? Wenn ich den kommpletten Bereich angebe klappt es.
mfg Pitt
Option Explicit ' Variablendefinition erforderlich
Private Sub Worksheet_Calculate()
'* H. Ziplies                                     *
'* 06.08.10                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
' diese Variante kostet Rechenleistung
' da bei jeder Eingabe der Bereich Formatiert wird
' Fülfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
'Set RaBereich = Range("C4:AG18")
' noch mehr Bereiche
Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
'ActiveSheet.Unprotect "Passwort"        ' Tabellenschutz aufheben
For Each RaZelle In RaBereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
Select Case .Value          ' Zellinhalt vergleichen
Case 1
' Füllfarbe Grau - 25%
.Interior.Color = RGB(255, 102, 0)
Case 2
' Füllfarbe Gelb
.Interior.Color = 65535
Case 3
' Füllfarbe Ror
.Interior.Color = 255
Case "U"
' Füllfarbe grelles Grün
.Interior.Color = 65280
.Font.Color = 16777215
Case Else
' keine Füllfarbe
.Interior.ColorIndex = xlNone
End Select
End With
End If
Next RaZelle
'ActiveSheet.protect                     ' Tabellenschutz setzen
Set RaBereich = Nothing                 ' Variable leeren
End Sub

Anzeige
AW: Bedingte Formatierung
02.07.2013 06:00:38
Hajo_Zi
Hallo Pit,
das ist keine Zellbezeichnung
Range("C26AG26
Gruß Hajo

AW: Bedingte Formatierung
01.07.2013 23:33:00
Pitt
Hi
wenn ich den Code so anwende bekomme ich eine Fehlermeldung:"Die Methode Range für das Objekt Worksheet ist fehlgeschlagen" und dieser Bereich wird dann Gelb Markiert:"Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))"

Kann mir jemand sagen was ich falsch gemacht habe? Wenn ich den kommpletten Bereich angebe klappt es.
mfg Pitt
Option Explicit ' Variablendefinition erforderlich
Private Sub Worksheet_Calculate()
'* H. Ziplies                                     *
'* 06.08.10                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
' diese Variante kostet Rechenleistung
' da bei jeder Eingabe der Bereich Formatiert wird
' Fülfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
'Set RaBereich = Range("C4:AG18")
' noch mehr Bereiche
Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
'ActiveSheet.Unprotect "Passwort"        ' Tabellenschutz aufheben
For Each RaZelle In RaBereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
Select Case .Value          ' Zellinhalt vergleichen
Case 1
' Füllfarbe Grau - 25%
.Interior.Color = RGB(255, 102, 0)
Case 2
' Füllfarbe Gelb
.Interior.Color = 65535
Case 3
' Füllfarbe Ror
.Interior.Color = 255
Case "U"
' Füllfarbe grelles Grün
.Interior.Color = 65280
.Font.Color = 16777215
Case Else
' keine Füllfarbe
.Interior.ColorIndex = xlNone
End Select
End With
End If
Next RaZelle
'ActiveSheet.protect                     ' Tabellenschutz setzen
Set RaBereich = Nothing                 ' Variable leeren
End Sub

Anzeige
AW: Bedingte Formatierung
02.07.2013 01:06:51
Mustafa
Hallo Pitt,
Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
Da fehlt ein Doppelpunkt.
Set RaBereich = Union(Range("C4:AG18 , C20:AG20, C22:AG22 , C24:AG24"), _
Range("C26:AG26, C28:AG28, C30:AG30, C32:AG32 , C34:AG34 , C36:AG36"), _
Range("C38:AG38 , C39:AG39 , C41:AG41 , C43:AG43 , C45:AG45 , C46:AG46"), _
Range("C48:AG48 , C49:AG49, C51:AG51 , C53:AG53 , C55:AG55"), _
Range("C57:AG57 , C59:AG59 , C61:AG61"))
Versuch es mal so.
Rückmeldung obs hilft wäre nett.
Gruß aus der Domstadt Köln.

Anzeige
AW: Bedingte Formatierung
02.07.2013 01:34:48
Pitt
Hallo Mustafa
danke für deine hilfe hätte ich auch selbst drauf kommen können. Hätt ich nur besser hingeschaut :-((
ich glaub es ist einfach zu spät.
mfg Pitt

AW: Bedingte Formatierung
02.07.2013 01:39:50
Mustafa
Jaja manchmal sieht man vor lauter Bäumen den Wald nicht mehr ;)
Danke für die Rückmeldung.
Gruß aus der Domstadt Köln

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige