Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mal wieder bedingte Formatierungen

mal wieder bedingte Formatierungen
13.04.2005 17:07:14
Johannes
Hallo Spezialisten,
ich habe folgendes Problem: mal wieder bedingte Formatierungen. In der Recherche fand ich folgenden Code (auf Seite von Hajo_Zi), den ich mir für die beiden fehlenden (4. und 5.) Bedingungen angepasst habe.
Der Code steht im Worksheet und arbeitet einwandfrei, solange das Blatt nicht mit einem Blattschutz versehen ist. Ist dieser aktiv kommt folgende Fehlermeldung:
Die ColorIndex-Eigenschaft des Interior-Objektes kann nicht festgelegt werden
Der Code:

Private Sub Worksheet_Calculate()
Dim RaBereich1 As Range, RaZelle1 As Range
' Bereich der Wirksamkeit AS1
Set RaBereich1 = Range("G23, I23, K23, M23, O23, Q23")
For Each RaZelle1 In RaBereich1
If Not Intersect(RaZelle1, RaBereich1) Is Nothing Then
Select Case RaZelle1.Value
Case "!"
RaZelle1.Interior.ColorIndex = 44
' orange
Case "0"
RaZelle1.Interior.ColorIndex = 36
' hell gelb
End Select
End If
Next RaZelle1
Set RaBereich1 = Nothing
End Sub

Kann mir jemand den Grund hierfür nennen und evtl sogar eine Abhilfe? Herzlichen Dank für Eure Mühe
Gruß
Johannes

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
protect bzw. unprotect
13.04.2005 17:30:57
ransi
hallo
dann musst du den schutz zur laufzeit entfernen,
den colorindex setzen und das sheet wieder schützen.
schau dir in der VBA-Hilfe mal Protect-Methode und unprotect-Methode an.
ist da ziemlich gut beschrieben.
ransi
sorry geht nicht
13.04.2005 17:38:00
Johannes
Hallo ransi,
die Fehlermeldung tritt nicht erst auf, wenn der restliche Code abgearbeitet wird, sondern, wenn in den Zellen vor Zellen mit den bedingten Formatierungen eine Eingabe gemacht wird.
Sprich wenn in F23 ein Wert eingetragen wird, "reagiert" G23 mit einer der fünf Bedingungen. Der Blattschutz muss schon immer erhalten bleiben.
Gruß
Johannes
Anzeige
AW: sorry geht nicht
13.04.2005 17:47:42
Koenig
sorry,
kann ja nicht gehen, weil Du ja im geschützten Bereich etwas eingeben willst und erst danach das Calculate Ereignis ausgelöst wird, das unprotect also zu spät kommt.
Ich sehe leider nicht genau, was Du in der Tabelle machst oder machen willst.
Gruss
AW: sorry geht nicht
13.04.2005 17:48:03
ransi


      
Hallo johannes
versuchs mal so:
Das unprotect bzw. protect an die markierten stellen.
ungetestet.
Option 
Explicit
Private Sub Worksheet_Calculate()
    
Dim RaBereich1 As Range, RaZelle1 As Range
    
' Bereich der Wirksamkeit AS1
    Set RaBereich1 = Range("G23, I23, K23, M23, O23, Q23")
    
For Each RaZelle1 In RaBereich1
        
If Not Intersect(RaZelle1, RaBereich1) Is Nothing Then
        
'Hier unprotect
            Select Case RaZelle1.Value
                
Case "!"
                    RaZelle1.Interior.ColorIndex = 44
                    
' orange
                Case "0"
                    RaZelle1.Interior.ColorIndex = 36
                    
' hell gelb
            End Select
        
End If
    
Next RaZelle1
    
'Hier protect
    Set RaBereich1 = Nothing
End Sub
ransi 


Anzeige
AW: sorry geht nicht
13.04.2005 17:52:25
Hajo_Zi
Hallo ransi,
im Origial ist es auch fastr an der Stelle. Unprotect kann noch vor die For Next Schleife.
Hallo johannes,
Dieser Code verändert nur die Zelle die im RaBereich stehen da steh kein Offset. Prüfe mal Deine Bedingte Formatierung. Irgendwo jhattest Du geschrieben in G23 wird was eingegeben und in F ändert sich die Farbe.
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 Home SP2 und Excel Version 2003 SP1.


Datei zum testen
13.04.2005 20:03:38
Johannes
Hallo Hajo,
hallo ransi,
ich habe einen Teil der Datei mit den notwendigen Inhalten hochgeladen - vieleicht wird an dem Beispiel mein Problem klarer:
https://www.herber.de/bbs/user/21113.xls
Vielen dank für Eure Mühe schon jetzt.
Gruß
Johannes
Anzeige
AW: Datei zum testen
13.04.2005 20:11:43
Hajo_Zi
Hallo johannes,
hast Du den Vorschlag von ransi realisiert?
Warum 2x?
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Datei zum testen
13.04.2005 20:18:44
Hajo_Zi
Hallo Johannes,
Option Explicit

Private Sub Worksheet_Calculate()
Dim RaBereich1 As Range, RaZelle1 As Range
' Bereich der Wirksamkeit AS1
'    Set RaBereich1 = Range("G24, I24, K24, M24, O24, Q24", "G25, I25, K25, M25, O25, Q25")
Set RaBereich1 = Union(Range("G24, I24, K24, M24, O24, Q24"), _
Range("G25, I25, K25, M25, O25, Q25"))
ActiveSheet.Unprotect ("")
For Each RaZelle1 In RaBereich1
If Not Intersect(RaZelle1, RaBereich1) Is Nothing Then
Select Case RaZelle1.Value
Case "!"
RaZelle1.Interior.ColorIndex = 44
' orange
Case "0"
RaZelle1.Interior.ColorIndex = 36
' hell gelb
End Select
End If
Next RaZelle1
ActiveSheet.Protect ("")
Set RaBereich1 = Nothing
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
Danke schön
13.04.2005 20:48:35
Johannes
Hallo Hajo,
herzlichen Dank für Deine Hilfe. Zur Frage warum zweimal: Es ist ein Ausschnitt aus einer Dokumentation einer fertigungsbegleitenden Qualitätsprüfung, die in diesem Falle zweimal je 8 Stunden Schicht durchgeführt wird.
Gruß
Johannes
Ist es nicht einfacher, man bezieht das Protect...
13.04.2005 20:50:11
Luc
...von Anfang an nur auf das userinterface, liebe Gemeinde? Dann können die Makros doch alle notwendigen Eintragungen vornehmen, nur der Nutzer nicht!
Gruß Luc :-?
AW: mal wieder bedingte Formatierungen
13.04.2005 17:33:19
Koenig
Hallo Johannes,
der Blattschutz schützt eben auch vor ungewollten Formatierungen.
Du musst im Code nur zuerst den Blattschutz entfernen und am Schluss wieder setzten.
Unter Protect findest Du in der Hilfe die genaue Syntax (evtl. auch mit Passwort).
Gruss Wilhelm
Anzeige
sorry geht nicht (siehe oben) owt
13.04.2005 17:39:50
Johannes
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige