hallo.
ich habe eine formularansicht mit viel dropdown-zellen. über den gültigkeitsbereich sind die auszuwählenden werte festgelegt. unterlagert an diese dropdown-zellen ist eine prozedur, die bei einem doppelklick auf die dropdown-zellen ausgeführt wird.
ich will das blatt schützen. dazu habe ich alles dropdown-zellen aus dem blattschutz raus genommen und alle anderen zellen nicht. wenn ich jetzt den blattschutz aktiviere, kann ich wie gewünscht nur die dropdown-zellen ändern. soweit funktioniert das alles.
jetzt zu meinem problem:
nachdem der blattschutz aktiv ist kann ich keinen doppelklick auf den dropdown-zellen machen. bereits nach einfachem klick öffnet sich die dropdown-auswahlliste. ich schaffe es also nicht mehr nach aktivem blattschutz die prozedur nach einem doppelklick auf eine dropdown-zelle zu starten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
ActiveSheet.Unprotect
Makro1 Target.Address(False, False)
ActiveSheet.Protect
End Sub
wie kann ich das problem in den griff bekommen?
Hallo Stefan
jetzt zu meinem problem:
nachdem der blattschutz aktiv ist kann ich keinen doppelklick
auf den dropdown-zellen machen. bereits nach einfachem klick
öffnet sich die dropdown-auswahlliste. ich schaffe es also
nicht mehr nach aktivem blattschutz die prozedur nach einem
doppelklick auf eine dropdown-zelle zu starten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As
Excel.Range, Cancel As Boolean)
ActiveSheet.Unprotect
Makro1 Target.Address(False, False)
ActiveSheet.Protect
End Sub
Meines Wissens gar nicht, weil sich Doppelklick und Blattschutz nicht vertragen. Der Doppelklick dient ja zum Ausführen eines Makros. Dies passt aber wieder mit dem Blattschutz nicht zusammen, der genau solche Dinge verhindern soll.
Gruß alex
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As
Excel.Range, Cancel As Boolean)
ActiveSheet.Unprotect
Makro1 Target.Address(False, False)
ActiveSheet.Protect
End Sub
Hallo Stefan,
vielleicht so:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect
Cancel = True
Target.Value = „Huhu“
ActiveSheet.Protect
End Sub
Gruß
Reinhard
Hallo Stefan,
wie Alex schon schrieb, das Doppelklick-Ereignis ist bei geschütztem Blatt in Zellen mit Datengültigeits-Prüfung deaktiviert.
Was verbirgt sich denn hinter Macro1, dass ja die Zelladresse auswertet?
Evtl. hilft dir ja auch der Rechte-Maustaste-Klick weiter. Dabei sollte dann allerdings ggf. die Auswertung des Klicks auf die Zellbereiche beschränkt werden, die Zellen mit Datengültigkeitsprüfung enthalten. Sonst wird das Kontext-Menü im gesamten Blatt deaktiviert.
Gruß
Franz
CodeBeispiel:
Private Sub Worksheet\_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("C3:F9")) Is Nothing \_
Or Not Intersect(Target, Range(Cells(12, 3), Cells(13, 6))) Is Nothing Then
Cancel = True 'verhindert, dass nach Ausführung das Rechte-Maustaste-Kontex-Menü \_
angezeigt wird
ActiveSheet.Unprotect
Makro1 Target.Address(False, False)
ActiveSheet.Protect
End If
End If
End Sub