Registriert seit: 23.10.2015
Version(en): 2010
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 23.10.2015
Version(en): 2010
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
Gruß
Jan
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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=160Im ü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)
Registriert seit: 23.10.2015
Version(en): 2010
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
01.12.2015, 14:11
(Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2015, 15:32 von Glausius.)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Jan-Lan95
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.