Clever-Excel-Forum

Normale Version: Nur Bearbeitung der Mappe mit UserForm sperren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgende Frage:

Wenn ich eine UserForm mit

Code:
Userform1.Show vbModeless


starte lässt sich der Inhalt im Hintergrund verändern. Das möchte ich nicht, daher habe ich versucht das Blatt zu sperren. Mittels der Userform sollen jedoch Werte in dem Blatt geändert werden, wodurch es verständlicherweise zu einem Fehler kommt, da das Blatt gesperrt ist.

Wenn ich die Userform durch den Code ohne den Zusatz vbModeless starte, erreiche ich zwar die Änderung durch die Userform zu vollziehen ohne Zugriff auf das Blatt zu gewähren, jedoch kann der Nutzer dann in anderen Arbeitsmappe ebenfalls keine Änderungen durchführen, da die Userform offen ist.
Lässt sich das irgendwie lösen? Gewünscht wäre, die Änderung in der einen Mappe nur durch die Userform zuzulassen, während sonstige Mappen unbeeinflusst bleiben.

Gruß
Hallo

unter DieseArbeitsmappe

Code:
Private Sub Workbook_Open()
   With Worksheets("Tabelle1")
       .Protect Password:="Kennwort", UserInterfaceOnly:=True
       .EnableOutlining = True
   End With
End Sub
dann kannst du nix von Hand eintragen aber ein Makro darf das
MfG Tom
Hammer, danke! :)
Ach nein, moment das ist nicht was ich möchte!
Ich würde gerne dem Nutzer ohne Passwort die Möglichkeit geben Daten mittels der Userform auszulesen, ohne dass er diese in der Excel verändern kann. Dabei soll er aber in anderen (eigenen) Dateien beliebig verfahren dürfen.
Hi,

dann lasse den Teil weg:
Password:="Kennwort"

oder verwende
Password:=""
Das Thema hat sich mit euren Antworten und ein wenig ausprobieren genau so geregelt wie ich es wollte, danke! :)
Code:
Private sub userform_Initialize()
   application.visible=false
   listbox1.list=sheets(1).cells(1).currentregion.value
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   sheets(1).cells(1).currentregion=listbox1.list
   thisdocument.save
   application.visible=true
   thisdocument.close 0
End Sub