Kann man per VBA Eingaben in gesperrte Zellen machen?
#1
Hallo,
Ich habe ein Blatt, in das verschiedene Leute Eingaben machen müssen. Da oft Irrtümer vorkommen, habe ich alle Zellen, in die keine Eingaben gemacht werden, gesperrt.
Nun ist es aber so, dass per VBA in verschiedene andere Zellen Eingaben gemacht werden und nachher gelöscht werden.
Seit ich auch diese Zellen gesperrt habe erhalte ich natürlich eine Fehlermeldung.
Daher meine Frage: gibt es eine Möglichkeit, VBA Zugang zu Zellen zu gewähren, die für die User gesperrt sind?
MfG
Alooha
Top
#2
Ja, du kannst am Anfang der Makros den Schutz aufheben, Änderungen machen und dann wieder sperren.

Unprotect
Protect
Top
#3
An diese Möglichkeit hatte ich auch gedacht, aber gemeint, es würde vielleicht eine "elegantere" geben.
Top
#4
Mir nicht bekannt, ohne wird auch per Code eine Fehlermeldung kommen.
Top
#5
Hallo

alternativ könntest du mal probieren beim Öffnen der Datei mit Auto-Open den ScrollArea Bereich der Tabelle festzulegen.  Oder Spalten mit Formeln ausblenden.

mfg Gast 123
Top
#6
Hallo,

"alternativ könntest du mal probieren beim Öffnen der Datei mit Auto-Open den ScrollArea Bereich der Tabelle festzulegen.  Oder Spalten mit Formeln ausblenden."
das übersteigt meine Kapazitäten!
Ich versuche, die Sache mit Protect und Unprotect zu lösen, oder vielmehr umgekehrt.

MfG
Alooha
Top
#7
Moin!
Im WorkbookOpen setzt Du Worksheet.protect UserInterfaceOnly:=True

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Basisa
Top
#8
Dann kann aber auch jedes fremde Makro Änderungen vornehmen oder wird sowas irgendwie standardmäßig blockiert?
Top
#9
Ich habe es mit Unprotect und Protect gelöst.
Danke für alle Vorschläge!
Top
#10
Ich hätte hier mal ein kleines Problemlöseprogramm.

Finde das einfach nur perfekt. Habe auch immer wieder das meine Kolleginen einfach Formel löschen und keiner war das mehr.
Füge das mal im Arbeitsblatt ein und du wirst keine Blattschutz mehr brauchen Smile

Ach ja solltes du dannach eine Formel verändern wollen bitte diese VBA stoppen



Formel werden vor überschreiben geschütz, sollte diese überschrieben werden diese wieder hergestellt

Code:
Private Sub Workbook_SheetChange(ByVal sh As Object, _
  ByVal Target As Excel.Range)
  'Zellen mit Formeln werden vor Überschreiben
  'geschützt, ohne den Blattschutz aktivieren zu müssen
  Dim WertAktuell()
  Dim rngArea As Range
  Dim rngAZ As Range
  Dim rngZelle As Range
  Dim lngZ As Long
  Set rngAZ = ActiveCell
  On Error GoTo Ende
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Select Case sh.Name
     ' Case "CSB Export", ""
      'die Formeln dieser Tabellen werden nicht geschützt
    Case Else
      'die Auswahl ließe sich durch das Entfernen von 'Case Else' umkehren
      ReDim WertAktuell(1 To Target.Cells.Count)
      For Each rngArea In Target.Areas
        For Each rngZelle In rngArea.Cells
          lngZ = lngZ + 1
          WertAktuell(lngZ) = rngZelle.Formula
        Next rngZelle
      Next rngArea
      lngZ = 0
      Application.Undo
      For Each rngArea In Target.Areas
        For Each rngZelle In rngArea.Cells
          lngZ = lngZ + 1
          If Not rngZelle.HasFormula Then rngZelle = WertAktuell(lngZ)
        Next rngZelle
      Next rngArea
      rngAZ.Activate
  End Select
Ende:
  Application.EnableEvents = True
 
End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste