Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Blattschutz-Befehl (Code) mit Dialogfeld aufpeppen

Blattschutz-Befehl (Code) mit Dialogfeld aufpeppen
02.01.2006 19:34:41
Proxima05
Mit dem folgenden Code wird selektiv festgelegt, welche Zellen (abhängig von der Zellfarbe) mit einem Blattschutz belegt werden. Das funzt auch so hervorragend.

Private Sub cmdProtectSheet_Click()
Dim zelle As Range
For Each zelle In Selection
If zelle.Interior.ColorIndex = 15 Then zelle.Locked = True
'15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 15, True, False)
'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 6, True, False)
'15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
Next zelle
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End Sub

Jetzt würde ich aber gerne mittels einer Abfrage (Dialogfeld?) festlegen, ob eine vorher vorgenommene Selektion mit einem Blattschutz belegt wird, oder der gesamte Datenbereich (Range A1:AY500), natürlich wieder abhängig von der Zellfarbe.
Kann mir jemand helfen, ein solches Dialogfeld (mit zwei Auswahlmöglichkeiten (Selektion / GesamterDatenbereich, OK, Abbruch) in den Code zu integrieren?
Wäre riesig! ...... allerbesten Dank für die Unterstützung.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz-Befehl (Code) mit Dialogfeld aufpe
02.01.2006 20:09:52
Ramses
Hallo
mal ungetestet
Option Explicit

Private Sub cmdProtectSheet_Click()
    Dim Qe As Integer
    Dim zelle As Range, defRange As Range
    Dim myPW As String
    myPW = "1234"
    Set defRange = Range("A1:B500")
    Qe = MsgBox("Möchten Sie nur die Zellauswahl: " & Selection.Address & " sperren lasssen" & vbCrLf & _
        "oder den gesamten Bereich von " & defRange.Address & "?" & vbCrLf & _
        "NEIN = Standardbereich " & defRange.Address & vbCrLf & _
        "ABBRECHEN = Abbruch des Makros", vbcritcal + vbYesNoCancel, "Blattschutz anlegen")
    If Qe = vbCancel Then Exit Sub
    ActiveSheet.Unprotect Password:=myPW
    If Qe = vbYes Then
        For Each zelle In Selection
            If zelle.Interior.ColorIndex = 15 Then zelle.Locked = True
            '15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
            'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 15, True, False)
            'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 6, True, False)
        Next zelle
    Else
        For Each zelle In defRange
            If zelle.Interior.ColorIndex = 15 Then zelle.Locked = True
            '15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
            'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 15, True, False)
            'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 6, True, False)
        Next zelle
    End If
    ActiveSheet.Protect Password:=myPW, DrawingObjects:=True, Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End Sub

Gruss Rainer
Anzeige
AW: Blattschutz-Befehl (Code) mit Dialogfeld aufpe
03.01.2006 22:03:42
Proxima05
Danke für die schnelle Antwort .... das sieht gut aus ... ich werde das mal durchprobieren und mich dann wieder melden!
Danke!
AW: Blattschutz-Befehl (Code) mit Dialogfeld aufpe
03.01.2006 22:19:33
Proxima05
habe es gerade ausprobiert, .... was soll ich sagen? "Allererste Sahne!!!!" :-) :-)
Was ich gerne noch ändern würde, wäre wenn mir die Dialogbox den Bereich (markiert z.B. $A1:$B75, oder den gesamten Datenbereich) nicht in der absoluten Range anzeigt, sondern dafür eine vorhereingestellt Bezeichnung im Dialogfeld anzeigt (z.B. Möchten Sie nur die Zellauswahl ("das was mit der Maus markiert wurde") sperren lassen, oder doch lieber den gesamten Datenbereich ("all das, wo Daten drinstehen").
Kann man die Nennung der Ranges durch Alternativbezeichungen maskieren?
Besten Dank für einen Tipp ......
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige