Collapse column

Autor Thema: Office 2010: Zellen mit Kontrollfeld sperren und entsperren  (Gelesen 1477 mal)

Offline SHeu112

  • Newbie
  • *
  • Beiträge: 14
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2007
Office 2010: Zellen mit Kontrollfeld sperren und entsperren
« am: Juli 05, 2016, 19:21:00 Nachmittag »
Hallo,

ich versuche seit längerem den Blatt und Arbeitsmappenschutz sowie das Erstellen eines Makro zu verstehen. Nur leider finde ich auch beim googeln nicht so wirklich die Lösung.

Die Zeilen sollen ganz normal beschreibbar sein, dabei soll es auch egal sein, ob alle Zellen gefüllt sind.
Damit niemand die Daten unvermittelt überschreibt, stelle ich mir vor, hinter die Zellen ein Kontrollfeld zu setzen, womit der Schutz ein- und ausgeschaltet werden kann.

Im Anhang findet Ihr die Beispielansicht / Datei

Die Suche hier im Forum war nicht erfolgreich, sollte die Frage bereits beantwortet sein, so bitte ich um Gnade und den richtigen Suchweg...

Gruß Stefan

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2010: Zellen mit Kontrollfeld sperren und entsperren
« Antwort #1 am: Juli 05, 2016, 20:01:28 Nachmittag »
Moin, verwende besser ein ActiveX Steuerelemen, das lässt sich besser ansprechen:
Private Sub CheckBox1_Click()
   With ActiveSheet
      .Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
      .Range("A2:H2").Locked = CheckBox1.Value
      .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   End With
End Sub

Gruß
Günther

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2010: Zellen mit Kontrollfeld sperren und entsperren
« Antwort #2 am: Juli 06, 2016, 10:23:36 Vormittag »
Hallo,

falls Du das so meinst, dass Du pro Zeile den Schutz einschalten und auschalten möchtest, dann ein Beispiel in der Datei anbei.
Mit Formularsteuerelementen. Grundsätzlich gilt der Schutz pro Blatt. Zellen kannst Du vom Schutz ausnehmen oder einschließen.

Das Code-Beispiel in der Datei wertet die Position = TopLeftCell des Kontrollkästchens aus, d.h. dass diese sich dann innerhalb
einer Zeile befinden müssen. Und macht sich zunutze, dass per Caller das angeklickte Steuerelement ermittelt werden kann.

Code: Visual Basic
  1.   Sub CellProtectionOnOff()
  2.    
  3.     Dim lngValue As Long
  4.     Dim lngRow   As Long
  5.     Dim strRange As String
  6.    
  7. '   Entschützen...
  8.    
  9.     ActiveSheet.Unprotect "" ' Ggf. Kennwort
  10.    
  11. '   Ermitteln...
  12.    
  13.     lngRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
  14.     lngValue = ActiveSheet.Shapes(Application.Caller).ControlFormat.Value
  15.     strRange = ActiveSheet.Range(ActiveSheet.Cells(lngRow, 1), ActiveSheet.Cells(lngRow, 8)).Address
  16.    
  17. '   Zellschutz ein und aus...
  18.    
  19.     ActiveSheet.Range(strRange).Locked = CBool(lngValue > 0)
  20.    
  21. '   Schützen...
  22.    
  23.     ActiveSheet.Protect ""
  24.    
  25.   End Sub
  26.  

Noch 'ne Anmerkung: bei einer überschaubaren Anzahl von Checkboxes ist's noch Ok. Wenn Du aber später Hunderte
von den Dingern hast, ist die Vorgehensweise nicht optimal. Einfacher wäre dann z.B. eine Spalte zu nehmen und
dessen Doppelklick-Ereignis auszuwerten.

@gmg-cc: Lieber Günther, Active-X ist nicht immer von Vorteil; in einem solchen Fall wie hier oben müsste er für
jedes ActiveX-Steuerelement eine Ereignisroutine machen. Oder Klassen, was dann aber etwas komplizierter ist.

Gruß
« Letzte Änderung: Juli 06, 2016, 10:25:20 Vormittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.