1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel: alle Zellen bis auf gelbe Zellen dynamisch schützen

Discussion in 'Office-Programme' started by Schneppy, Aug 20, 2007.

Thread Status:
Not open for further replies.
  1. Schneppy

    Schneppy ROM

    Hallo liebes Forum,

    ich bin neu hier und hoffe´, ihr könnt mir weiterhelfen.
    Ich suche nach einer VBA-Lösung die dynamisch Zellen sperrt bzw. schützt.

    Ich habe in meiner Datei über mehrere Mappen hinweg viele Eingabefelder angelegt, die später dann die Formeln mit Daten füttern.

    Jetzt zu meinem Problem:

    Ich möchte alle Zellen schützen, die nicht gelb und nicht orange sind. In den gelben werden Daten vom User eingegeben und die orangenen Zellen sind Drop-Down-Menus. Alle anderen Zellen sollten nicht angewählt werden können, oder zumindest geschützt werden.

    Natürlich könnte ich das über den normalen Zellenschutz lösen, aber ich habe einige benutzerabhängige Formatierungen mit eingebaut, wodurch dann die Zelle je nach Dateneingabe gelb wird oder eben nicht. D.h. würde ich sie jetzt per "normalem Zellenschutz" absichern, könnte nie jemand etwas eingeben, auch wenn durch eine benutzerdefinierte Formatierung die Zelle als Eingabezelle deklariert wird!

    Ich hoffe ich konnte es einigermaßen gut erklären und vielleicht kann mir einer von den Profis hier den einen oder anderen VBA Code als Hilfe nennen!

    Danke!

    Eure Michaela
     
  2. brum

    brum Kbyte

    Hallo Michaela

    Leider habe ich nicht ganz den Überblick, wie die Tabellen aussehen.

    Wenn Du es mittels Blattschutz machen willst bzw. wenn es überhaupt möglich ist, musst Du einen Event-Handler einsetzen. Dieser muss die Eingaben überwachen. Wenn dann eine bestimmte Eingabe gemacht wird, soll eine bisher gesperrte Zelle freigegeben werden.

    Hier ein Beispiel eines Event-Handlers:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
      Select Case Target.Address
      Case "$A$1"
        If Target.Text = "1" Then
          ActiveSheet.Unprotect
          Range("A2").Locked = False
          ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ElseIf Target.Text = "2" Then
          ActiveSheet.Unprotect
          Range("A2").Locked = True
          ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
      End Select
    End Sub
    
    Das Beispiel überwacht jetzt nur die Zelle A1 (kann natürlich erweitert werden). Wenn nun die Zelle A1 geändert wird, schaut er, ob die Zelle den Wert "1" oder den Wert "2" hat. Bei "1" wird die Sperrung von Zelle A2 entfernt, bei "2" wird die Sperrung wieder gesetzt.

    Dieser Code muss im VBA-Editor in die Tabelle (im Projekt) eingefügt werden.

    Ich hoffe, Du hast Ahnung von Makros, dann kannst Du vielleicht Dein Problem lösen. Sonst wird es schwierig...

    Gruss
    Bruno
     
  3. Schneppy

    Schneppy ROM

    Hallo Bruno,

    danke für die schnelle Antwort! Werd es gleich mal ausprobieren... wer nicht bastelt, schaut nur ab! :D

    Vielen Dank auf jeden Fall!

    Gruß
     
  4. Hascheff

    Hascheff Moderator

    Hallo Michaela,

    es wäre vielleicht besser, du hättest für die Eingaben in VBA ein Dialog-Fenster erstellt.

    Es wäre vielleicht besser, du hättest eine Access-Datenbank erstellt.
     
  5. Schneppy

    Schneppy ROM

    Hallo Hascheff,

    das wäre mir auch lieber gewesen. Doch leider hat unsere Firma nicht auf allen PCs Access installiert, meiner schon, aber nicht alle (Kosteneinsparung) und mit VBA-Eingaben kann ich dran arbeiten, aber mein Nachfolger müsste um Änderungen umsetzen zu können ebenfalls mit VBA umgehen können...!

    Kurz um, die Optionen hatte ich nicht, da gegen die Firmen- und Abteilungsphilosophie! So ist das nun mal mit großen Konzernen... :D

    Ich habe aber den Code oben umformen können, bis auf ein paar Ecken und Kanten klappt er schon ganz gut!

    LG
     
Thread Status:
Not open for further replies.

Share This Page