VBA - Zellschutz aktivieren, wenn in einer anderen Zelle ein bestimmter Wert steht
#1
ich bin absoluter VBA Neuling, ich hoffe mir kann jemand helfen. Ich habe für die Arbeit eine Auswertungstabelle für Schulabschlüsse erstellt. Ich möchte, dass sich in der angehängten Datei im Tabellenblatt "alle" die Zellen J6:L10 für die Eingabe sperren, wenn in G6 - G10 ein n.z. steht. Allerdings nicht alle Zellen auf einmal, sondern zeilenweise wenn eben die Bedingung "n.z." für den jeweiligen Prüfling erfüllt ist. Kann mir vielleicht jemand helfen?

Ich habe es zwar schon mit Datenüberprüfung hinbekommen, aber das ist nicht die Lösung die ich bevorzuge, lieber wäre es mir, wenn man die Zellen gar nicht auswählen könnte.


Angehängte Dateien
.xlsx   Prüfungsnoten_2016Test.xlsx (Größe: 26,87 KB / Downloads: 2)
Antwortento top
#2
Hi,

(07.06.2016, 10:10)Naddus0207 schrieb: Ich habe es zwar schon mit Datenüberprüfung hinbekommen, aber das ist nicht die Lösung die ich bevorzuge, lieber wäre es mir, wenn man die Zellen gar nicht auswählen könnte.

ich glaube, das geht nur per VBA/Makro.

Aufheben des Blattschutzes,
setzen der Zellen auf gesperrt,
Blatt schützen

im anderen Fall:
Aufheben des Blattschutzes,
setzen der Zellen auf ungesperrt,
Blatt schützen

Aber es wird irgend ein Trigger für das Starten der Makros benötigt!
Antwortento top
#3
Danke für die Antwort.

Was ist denn ein Trigger? Sorry, aber ich kenn mich mit Makros/VBA nicht so gut aus.

In der Tabelle hier habe ich es mit der Datenüberprüfung und der bedingten Formatierung gemacht. Aber ich würde es gerne über die Zellsperrung lösen.


Angehängte Dateien
.xlsx   Prüfungsnoten_2016Test2.xlsx (Größe: 28,61 KB / Downloads: 2)
Antwortento top
#4
Hi,

(07.06.2016, 11:05)Naddus0207 schrieb: Was ist denn ein Trigger?

ein Trigger ist ein Auslöser für das Makro, das kann eine Veränderung in einer bestimmten Zelle sein, oder das Aktivieren eines Tabellenblattes oder das Drücken eines Knopfes.


Um irgendetwas ausprobieren zu können, wäre es ganz toll, wenn die Datei keinen Passwortschutz hätte.
Antwortento top
#5
Hier ohne Schutz.


Angehängte Dateien
.xlsx   Prüfungsnoten_2016Test2.xlsx (Größe: 28,58 KB / Downloads: 1)
.xlsx   Prüfungsnoten_2016Test.xlsx (Größe: 26,79 KB / Downloads: 1)
Antwortento top
#6
Hi,

(07.06.2016, 12:15)Naddus0207 schrieb: Hier ohne Schutz.

die Hälfte der Blätter ist noch geschützt.
Antwortento top
#7
Ach so ok. Dann noch mal komplett ohne. Ich dachte es reicht, wenn ich nur das erste entsperre.

Danke schon mal für die Mühe.


Angehängte Dateien
.xlsx   Prüfungsnoten_2016Test.xlsx (Größe: 26,79 KB / Downloads: 0)
.xlsx   Prüfungsnoten_2016Test2.xlsx (Größe: 28,5 KB / Downloads: 3)
Antwortento top
#8
Hi,

(07.06.2016, 11:05)Naddus0207 schrieb: In der Tabelle hier habe ich es mit der Datenüberprüfung und der bedingten Formatierung gemacht. Aber ich würde es gerne über die Zellsperrung lösen.

ich habe nun die Datenüberprüfung entfernt und ein Makro erstellt, daß in der aktiven Zeile die Zelle sperrt und schraffiert und ein anderes, daß das alles rückgängig macht:
Option Explicit

Sub Zellen_sperren_Blattschutz_setzen()
   ' 
   ' Zellen_sperren_Blattschutz_setzen Makro 
   ' 
   Dim loZeile As Long
   Dim i As Integer
   ' 
   
   loZeile = ActiveCell.Row
   ActiveSheet.Unprotect Password:="xxx"
   With Range("J" & loZeile & ":L" & loZeile)
            .Locked = True
            .FormulaHidden = False
            With .Interior
               .Pattern = xlLightUp
               .PatternColorIndex = xlAutomatic
               .Color = 14479851
               .TintAndShade = 0
               .PatternTintAndShade = 0
            End With
         End With
   ActiveSheet.Protect Password:="xxx"
   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Sub Zellen_entsperren_Blattschutz_aufheben()
   ' 
   ' Zellen_entsperren_Blattschutz_aufheben Makro 
   ' 
   Dim loZeile As Long
   ' 
   
   loZeile = ActiveCell.Row
   ActiveSheet.Unprotect Password:="xxx"
   With Range("J" & loZeile & ":L" & loZeile)
      .Locked = False
      .FormulaHidden = False
      With .Interior
         .Pattern = xlNone
         .TintAndShade = 0
         .PatternTintAndShade = 0
         .Pattern = xlSolid
         .PatternColorIndex = xlAutomatic
         .Color = 14479851
         .TintAndShade = 0
         .PatternTintAndShade = 0
      End With
   End With
End Sub

Es fehlt nun noch die Überprüfung auf die Zelle, in der das n.z. steht und das davon abhängige Setzen der Sperre.
Und vor allem fehlt der Auslöser, wann soll die Überprüfung starten?
Antwortento top
#9
Die Zelle in der das n.z. steht ist ausgeblendet G6:G10

Der Auslöser sind im Prinzip die Noten, die im schriftlichen Bereich eingetragen werden. Mathe zieht es sich ja automatisch. Deutsch und Erdkunde werden per Hand eingetragen. Sobald mehr als die Hälfte der Noten schlechter als 4 sind, wird man nicht zur mündlichen Prüfung zugelassen und in G6:G10 erscheint (abhängig vom jeweiligen Prüfling) das n.z..
Antwortento top
#10
Hi,

(07.06.2016, 14:49)Naddus0207 schrieb: Der Auslöser sind im Prinzip die Noten, die im schriftlichen Bereich eingetragen werden. Mathe zieht es sich ja automatisch. Deutsch und Erdkunde werden per Hand eingetragen. Sobald mehr als die Hälfte der Noten schlechter als 4 sind, wird man nicht zur mündlichen Prüfung zugelassen und in G6:G10 erscheint (abhängig vom jeweiligen Prüfling) das n.z..

bitte etwas klarere Vorgaben.
Ich hatte es ja schon geschrieben:
Zitat:das kann eine Veränderung in einer bestimmten Zelle sein, oder das Aktivieren eines Tabellenblattes oder das Drücken eines Knopfes.

Du kannst ja nicht in mehrere Zellen gleichzeitig unterschiedliche Noten eintragen.
Also:
  • wo werden die Noten eingetragen?
  • wieviele sind es? Tatsächlich nur 3 (Deutsch, Mathe, Erdkunde) oder mehr oder auch andere Fächer?
  • soll für jede Zeile das Makro erneut starten (durch Knopfdruck oder nachdem alle 3 Zellen [welche] gefüllt sind) für die aktuelle Zeile?
  • oder am Ende der Eingaben für alle Schüler per Knopfdruck ein Mal?
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste