Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Blatt schützen VBA
#1
Hallo VBA-Experten,

ich habe eine Exceldatei mit insgesamt 9 Arbeitsblättern. In dem 1. habe ich eine UserForm mit der man die Tabellen in den anderen Arbeitsblättern füllen kann (das ganze geschieht über einen Button 'Speichern'). Von den verbleibenen 8 Arbeitsblättern sollen nur 5 geschützt werden.
Jetzt soll niemand in meinen Formeln in den 5 Arbeitsblättern rumfuschen, trotzdem soll aber über die UserForm Werte in die Tabellen übertragen werden können.


Code:
Private Sub Workbook_Open()


   ThisWorkbook.Worksheets("NOV WS").Protect Password:="1234", UserInterfaceOnly:=True


End Sub

Eingefügt in 'DieseArbeitsmappe' habe ich das mit dem Code auch hinbekommen. Mein zweites AB ("NOV Integral") wollte ich dann auf die selbe Art schützen.
Wenn ich den selben code für das zweite AB kopiere (und nur den Namen in "NOV Integral" ändere) kommt eine Fehlermeldung. Ich bin ein VBA Anfänger und komme nicht mehr weiter.
Ich hoffe ihr könnt mir helfen.

Danke und Gruß

Jan
Antworten Top
#2
Hallo!
Ich schätze mal, Du hast zwei Workbook_Open erstellt, was nicht erlaubt ist (eindeutiger Name einer Prozedur).
Wenn man mehrere Blätter schützen will, nimmt man eine Schleife über alle Blätter.
Wenn nicht alle, sondern nur ein Teil geschützt werden soll, fragt man den Namen per Select Case ab.
In meinem Beispiel werden die Tabellen 1, 3, 4, 7 und 8 geschützt:

Private Sub Workbook_Open()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
   Select Case wks.Name
      Case "Tabelle1", "Tabelle3", "Tabelle4", "Tabelle7", "Tabelle8"
         wks.Protect Password:="1234", UserInterfaceOnly:=True
   End Select
Next
End Sub

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)
Antworten Top
#3
Hallo Ralf!
Ich danke dir, alles klappt.

Code:
Private Sub Workbook_Open()


   ThisWorkbook.Worksheets("NOV WS").Protect Password:="1234", UserInterfaceOnly:=True


End Sub
Code:
Private Sub Workbook_Open1()


   ThisWorkbook.Worksheets("NOV Integral").Protect Password:="1234", UserInterfaceOnly:=True


End Sub
Das habe ich auch versucht. Dann kam auch keine Fehlermeldung mehr, aber das AB "NOV Integral" wurde nicht geschützt. Wahrscheinlich habe ich einen dummen Anfängerfehler, sorry dafür Huh
Gruß
Jan
Antworten Top
#4
Hi Jan!
Es gibt keine dummen Anfängerfehler!
Dumm wäre es nur, wenn Du bei Problemen aufgeben würdest ...

Alle Ereignismakros in VBA haben festgelegte Namen, die nicht geändert werden dürfen.
Das Gleiche gilt für evtl. benötigte Parameter wie bei:
Code:
Private Sub Worksheet_PivotTableBeforeDiscardChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long)
Glaub mal ja nicht, dass ich mir das alles merken kann! :21:
Aber der VBA-Editor bietet dazu Hilfsmittel an.
Schaue mal auf die zwei Dropdowns oberhalb des Code-Fenster und lies Dir folgenden Link aufmerksam durch:
http://www.online-excel.de/excel/singsel_vba.php?f=160

Im übrigen kannst Du intensiv auf der Seite stöbern.
Dort wird in einem lockeren Sprachstil fundiertes Wissen vermittelt.

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)
Antworten Top
#5
Hey Ralf!

Danke, das ist/war sehr hilfreich. Dann ist die Kunst wohl eher zu wissen was die Makros bedeuten bzw. wie man es herausfindet (und natürlich wie man sie dann entsprechend anwendet). Ich hatte mich auch schon oft gewundert, woher manche die entsprechenden Makros genommen haben. Ich kenne zwar die Funktion, dass man sich Vorschläge anzeigen lassen kann, aber den Zusammenhang mit den Ereignismakros hatte ich noch nicht.

Gruß
Jan
Antworten Top
#6
Hi Jan!
Hilfreich ist es auch in Excel-Foren mitzulesen, auch wenn man gerade selbst keine Hilfe benötigt.
Als zweiter Schritt folgt dann, mal für Probleme anderer User Lösungen zu suchen.
Als drittes dann die ersten Lösungen hochzuladen.
(Glaube mir, auch wenn dies evtl. falsch wäre wird Dich keiner bloßstellen, sondern im Gegenteil Hilfestellungen geben)

Diejenigen, die hier häufig Probleme lösen, haben die Weisheit auch nicht mit dem Löffel gefuttert, sondern sich "herangearbeitet".

Immer am Ball bleiben,
wünscht 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:
  • Jan-Lan95
Antworten Top
#7
Hallo Jan,

auch ich wünsche Dir viel Erfolg und ein möglichst nicht lange auf sich warten lassendes erstes Erfolgserlebnis.
Sowas macht Spaß und muntert auf und, wie ich immer sage/schreibe: Excel macht süchtig ... aber es ist ein klasse Hobby

In einem Forum kann man sehr schnell in viele Themengebiete eintauchen. Sowas kann ein Buch keinesfalls leisten.

Also nochmals, trau Dich ruhig, wenn Du eine eigene Lösung gefunden hast, diese auch zu zeigen und laß' Dich nicht beirren.
Es führen eben immer mehrere Wege nach Rom.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top


Gehe zu:


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