Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wenn Schriftfarbe rot dann Zelle gesperrt

Frage Microsoft Microsoft Office

Mitglied: Asterix2

Asterix2 (Level 1) - Jetzt verbinden

08.01.2013 um 11:38 Uhr, 3179 Aufrufe, 7 Kommentare

Hallo,
nach x Stunden Google Suche wende ich mich an euch. Eigentlich ist mein Problem schnell erklärt.

Wenn die Schriftfarbe in einer Zelle rot ist, so soll diese gesperrt sein. Das war es dann eigentlich auch schon.
Ich hoffe ihr habt eine Lösung für mich. Das IE kennt keine.
Gruß Asterix2
Mitglied: 106543
08.01.2013, aktualisiert um 12:14 Uhr
Hallo,

hast du es schon mit VBS probiert ?
hier ein kleiner Code-Schnipsel, der dir vll. weiterhilft
01.
Sub Workbook_Open 
02.
if (Zelle.Font.ColorIndex = 3) 
03.
then 
04.
05.
[Sperrbefehl fällt mir leider grade nicht ein] 
06.
07.
end if 
08.
End Sub
Sorry kanns grade nicht richtig ausrobieren von daher keine Garantie auf Funktion

Grüße
Exze
Bitte warten ..
Mitglied: Asterix2
08.01.2013 um 12:55 Uhr
Hallo Exze
klappt leider nicht. Hab es mal so probiert:
Sub Workbook_Open()
If (Zelle.Font.ColorIndex = 3) Then
.Cells.Locked = True
End If
End Sub
Fehlermeldung: Unzulässiger oder nicht ausreichend definierter Verweis.
Gruß Asterix2
Bitte warten ..
Mitglied: colinardo
08.01.2013, aktualisiert um 13:03 Uhr
So einfach wie Exzellius das schreibt ist es aber nicht.
Folgender Code reagiert sobald das aktive Blatt neu berechnet wird. Dann musst du noch festlegen in welchem Zellen-Bereich du die Sperrung anwenden möchtest [Code-Zeile 4] (Einfach auf alle Zellen anwenden wäre overkill und würde die Anwendung extrem verlangsamen).
Danach prüft das Script die Zelle auf die Farbe Rot. Wenn diese Rot ist muss überprüft werden ob das aktuelle Blatt gerade geschützt ist, sonst kann der Code am Blatt nichts ändern. Ist es geschützt wird für die Änderung der Sperrung kurz der Blattschutz aufgehoben und danach wieder gesetzt. Der Methode Protect können mehrere Optionen angehängt werden, je nachdem was man bei geschütztem Blatt den Benutzern noch erlauben möchte. Die Optionen dafür kannst du mit einem testweise aufgenommenen Makro herausfinden.

01.
Private Sub Worksheet_Calculate() 
02.
Dim a As Range 
03.
Dim c As Range 
04.
Set a = ActiveSheet.Range("A1:B2") 
05.
For Each c In a.Cells 
06.
     If c.Font.ColorIndex = 3 Then 
07.
        If ActiveSheet.ProtectionMode = False Then 
08.
            c.Locked = True 
09.
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True 
10.
        Else 
11.
            ActiveSheet.Unprotect 
12.
            c.Locked = True 
13.
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True 
14.
        End If 
15.
    End If 
16.
Next 
17.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: 106543
08.01.2013, aktualisiert um 13:11 Uhr
Zitat von Asterix2:
Hallo Exze
klappt leider nicht. Hab es mal so probiert:
Sub Workbook_Open()
If (Zelle.Font.ColorIndex = 3) Then
.Cells.Locked = True
End If
End Sub
Fehlermeldung: Unzulässiger oder nicht ausreichend definierter Verweis.
Gruß Asterix2

Hi,

ja kein Wunder das war ja nur ein Code-Schnipsel und kein fertig formatierter und ausgetesteter Code. Sollte nur einen kleinen Denkanstoß bieten
Was Colinardo geschrieben hat, scheint da schon eher ausgereift, bzw. kann da der Code natürlich auch nicht einfach kopiert, sondern muss vorher noch angepasst werden

Grüße
Exze

EDIT: all unser Code richtet sich auf Microsoft Office Excel aus, wenn du da was anderes verwendest, musst du uns das sagen
Bitte warten ..
Mitglied: Asterix2
08.01.2013 um 13:21 Uhr
Hallo colinardo
Ich hab dein Code mal auf "Doppelklick gesetzt.
Leider sperrt er mir die ganze Tabelle.
Ich möchte aber nur die Zelle sperren, welche nach dem Doppelklick die Schriftfarbe auf rot ändert.
Private Sub Doppelklick()
Dim a As Range
Dim c As Range
Set a = ActiveSheet.Range("A1:B2")
For Each c In a.Cells
If c.Font.ColorIndex = 3 Then
If ActiveSheet.ProtectionMode = False Then
c.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
Else
ActiveSheet.Unprotect
c.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
End If
End If
Next
End Sub
Bitte warten ..
Mitglied: colinardo
08.01.2013, aktualisiert um 13:31 Uhr
Dann hast du das Prinzip Blattschutz noch nicht ganz verstanden. Du musst vorher bei den Zellen die der Benutzer bearbeiten können soll, in den Zelleigenschaften (STRG-1) auf dem letzten Tab den Schutz der Zelle deaktivieren...
Bitte warten ..
Mitglied: Asterix2
08.01.2013 um 13:30 Uhr
Ganz ehrlich, Jepp. Hab mich mal ganz kurz damit beschäftigt. Ich gebe dir recht.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel: Einzelne Zeilen einer mehrzeiligen Zelle auslesen (3)

Frage von Booster07 zum Thema Microsoft Office ...

Outlook & Mail
gelöst Outlook 2013 alte Mails alle rot (2)

Frage von timi007 zum Thema Outlook & Mail ...

Windows Userverwaltung
Von wo aus wurde mein Konto gesperrt (4)

Frage von Thor01 zum Thema Windows Userverwaltung ...

Microsoft Office
gelöst Formel für eine automatische Füllung anderer Zellen (1)

Frage von michael1306 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(2)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (16)

Frage von Lynkon zum Thema TK-Netze & Geräte ...