Registriert seit: 28.09.2017
Version(en): Office 365
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
Registriert seit: 14.02.2017
Version(en): Office 365
Ja, du kannst am Anfang der Makros den Schutz aufheben, Änderungen machen und dann wieder sperren.
Unprotect
Protect
Registriert seit: 28.09.2017
Version(en): Office 365
An diese Möglichkeit hatte ich auch gedacht, aber gemeint, es würde vielleicht eine "elegantere" geben.
Registriert seit: 14.02.2017
Version(en): Office 365
Mir nicht bekannt, ohne wird auch per Code eine Fehlermeldung kommen.
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
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
Registriert seit: 28.09.2017
Version(en): Office 365
16.12.2019, 18:26
(Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2019, 18:26 von Alooha.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Basisa
Registriert seit: 14.02.2017
Version(en): Office 365
Dann kann aber auch jedes fremde Makro Änderungen vornehmen oder wird sowas irgendwie standardmäßig blockiert?
Registriert seit: 28.09.2017
Version(en): Office 365
Ich habe es mit Unprotect und Protect gelöst.
Danke für alle Vorschläge!
Registriert seit: 02.12.2019
Version(en): Excel
16.12.2019, 22:55
(Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2019, 08:30 von WillWissen.
Bearbeitungsgrund: Codetags
)
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
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