1.5k Aufrufe
Gefragt in Windows 7 von
Zelle d2 bis Zelle h2 soll gesperrt werden wenn in Zelle as2;ak2; ak12;as12 die zahl 3 erscheint. Wenn die Zahl kleiner 3 ist, sollen Eintragungen möglich sein. Wer kann mir dabei eine Lösung mitteilen. VBA habe ich keine Ahnung.
In der Hoffnung ein positives Feedback zu bekommen bedanke ich mich schon einmal im voraus

27 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Adde,

der Schutz von Zellen wird nur aktiv, wenn du das Arbeitsblatt mit einem Blattschutz versiehst.
Bevor du das folgende Makro in deine Arbeitsmappe kopierst, solltest du bei allen Zellen in deinem Arbeitsblatt den Schutz aufheben.

Das folgende Makro aktiviert den Schutz, wenn in den Zellen AK2, AS2, AK12 und AS12 jeweils (zusammen) die Zahl drei steht. Kopiere das Makro in das [url=http://www.excelbeispiele.de/Tabelle.htm]VBA-Projekt deiner Tabelle[/url]:

[code]Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngBereich As Range
Dim rngZelle As Range
Dim bDrei As Boolean

'Bereich festlegen, der überwacht werden soll
Set rngBereich = Union(Range("AK2"), Range("AS2"), Range("AK12"), Range("AS12"))
'Schalter für die Dreier-Eintragungen auf wahr setzen
bDrei = True

'Hier wird der definierte Bereich überwacht
If Not Intersect(Target, rngBereich) Is Nothing Then

'Überprüfen, welche Zellen im Bereich einen Wert kleiner 3 haben
 For Each rngZelle In rngBereich
     If rngZelle.Value < 3 Then bDrei = False       'falls kleiner 3, dann Schalter auf falsch setzen
 Next rngZelle
  
  
  With ActiveSheet
  'nun den Blattschutz aufheben - Passwort ABC, falls kein Passwort gewünscht ist einfach durch .Unprotect bzw. .Protect ersetzen
   .Unprotect "ABC"
  
      With .Range("D2:H2")
         If bDrei = True Then
           .Locked = True         'falls alle Zellen den Wert drei haben, dann Zellen D2 bis H2 sperren
         Else
           .Locked = False         'falls nicht entsperren
         End If
      End With
 
   'nun wieder den Blattschutz aktivieren
   .Protect "ABC"

 End With

End If

End Sub[/code]

Gruß

M.O.
0 Punkte
Beantwortet von
Erst einmal vielen Dank für die schnelle Antwort. Werde es zu einem späterem Zeitpunkt versuchen und wenn es klappt melde ich mich nochmals.
0 Punkte
Beantwortet von
Es hat nicht funktioniert. Muss ich das in deutsch geschrieben ist löschen und dann einfügen
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

das in Deutsch geschriebene sind lediglich Kommentare, die keine Auswirkungen auf den Code haben. Bei meiner Testmappe funktioniert der Code.
Hast den Code in das VBA-Projekt des betreffenden Arbeitsblatts eingefügt (siehe Link oben).

Ansonste lade mal eine Beispielmappe auf einen Hoster deiner Wahl hoch (z.B. [url=http://www.filehorst.de/]hier[/url]) und poste den Link.

Gruß

M.O.
0 Punkte
Beantwortet von
Habe die Datei hochgeladen unter Cricket XL 4 Spieler habe ich eine Bemerkung hinterlassen. Wünsche mir, dass mir jemand eine Lösung geben kann.
0 Punkte
Beantwortet von
Möchte mich noch für die Anwort bedanken.

Gruß Adde
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wenn du noch den Link für die hochgeladene Datei posten würdest, könntest du auch mit einer Antwort rechnen ;-).

Gruß

M.O.
0 Punkte
Beantwortet von
[url=http://filehorst.de/d/csDgbsdu]Datei von filehorst.de laden[/url]

Hoffe, dass das richtig ist. Bin nicht so gut im Internet.

Gruß Adde und DAnke
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Addi,

zum Verständnis: wenn z.B. im ersten Tabellenblatt in der Zelle F24 eine 3 erscheint, dann sollen die orangenen Zellen in Zeile 2 bei allen Spielern gesperrt werden?

Mein geposteter Code funktioniert bei deiner Tabelle nicht, da die Zahl Drei durch eine Formel ermittelt wird und das Worksheet-Change-Event dann nicht greift.
Den werde ich dann ändern müssen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo

Also wenn in der Tabelle Cricket XL 4 Spieler in Zelle b2 drei Kreuze eingetragen sind wird in Zelle F10 eine 3 erscheinen durch eine Formel. Somit können die Spieler, Dieter, Rommet  und Marco keine Punkte mehr in dem Bereich Zelle L2 Bis P2, U2 bis Y2 und AC2 bis AH2 sammeln können. Ich dagegen ja, denn meine Gegner haben noch nicht die 3 erreicht. Denn diese Zellen sollen gesperrt werden. Das gleiche ist wenn Dieter in Zelle N10 die DREI steht Kann ich und die anderen Spieler auch nicht mehr Punkten. Also, alle die keine drei erreicht haben, kann der Spieler der es geschafft hat Punkte sammeln. Diese Sperren sollte fortlaufend von Zelle C2 bis G8 sein analog Zelle L2 bis P8, U2 bis Y8 und AD2 bis AH8.Hier stoße ich an meine Grenzen, da wie erwähnt in meiner 1ten Frage von VBA keine Ahnung besitze. Sollte dies nicht möglich wäre nicht schlimm.
Trotzdem bedanke ich mich nochmals für die Mühe die du/Sie sichgemacht haben.

Gruß Adde
...