Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bedingte Freischaltung von Zellen

Bedingte Freischaltung von Zellen
08.06.2006 07:50:42
Zellen
Hallo
Ich möchte Zellen in einem Arbeitsblatt über ein Makro bedingt Freischalten.
Die Bedingung steht jeweils in der ersten Spalte (ganze Zahl 1-...)
Wenn ich jetzt z.B. eine 3 auswähle (auf einem separaten Arbeitsblatt)
Sollen nur die Felder B3 bis Z3 zur Bearbeitung freigeschalten werden.
Ich müsste alson anhand der Bedingung den Blattschutz aufheben, die zu schützenden Zellen ändern und dann das Blatt wieder schützen.
Kan mir da bitte jemand helfen?
Danke

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Freischaltung von Zellen
08.06.2006 08:28:57
Zellen
Hallo,
das in VBA in das Arbeitsblatt eintragen:

Private Sub Worksheet_Activate()
If Sheets("Tabelle2").Range("A1") = 3 Then ' Bedingung
ActiveSheet.Unprotect "test" ' Blattschutzpasswort
Cells.Locked = True
Cells.FormulaHidden = True
Range("B3:Z3").Locked = False
Range("B3:Z3").FormulaHidden = True
ActiveSheet.Protect "test" ' Blattschutzpasswort
End If
End Sub

Gruß
marcl
AW: Bedingte Freischaltung von Zellen
08.06.2006 08:47:03
Zellen
Moin Enrico,
mein Vorschlag:
Diesen Code ins Blattmodul des separaten Blattes, in dem die Zeile definiert wird
Die Zelle, in der die Zeile definiert wird ist in meinem Bsp. A2
Sinnvoll wäre für A2 eine Gültigkeitsprüfung (Ganzzahl zwischen 1 und 32000) zu setzen.
Passwort: Test

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zeile As Integer
If Target.Count = 1 And Target.Address(0, 0) = "A2" Then
zeile = Target.Value
If zeile < 1 Or zeile > 32000 Then Exit Sub
With Sheets(1) 'Blatt mit freizuschaltenden Zeilen
.Unprotect "Test"
.Cells.Locked = True
.Range("B" & zeile & ":Z" & zeile).Locked = False
.Protect "Test"
End With
Sheets(1).Activate
End If
End Sub

Diesen Code ins Blattmodul des geschützen Blattes

Private Sub Worksheet_Deactivate()
With ActiveSheet
.Unprotect "Test"
.Cells.Locked = True
.Protect "Test"
End With
End Sub

Gruss Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige