Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1668to1672
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Reiter entnehmen und Schreibschutz

VBA - Reiter entnehmen und Schreibschutz
18.01.2019 10:57:33
Leonie
Hallo zusammen,
ich bin noch sehr unerfahren im Umgang mit VBA. Grundsätzlich habe ich Programmierkenntnisse in anderen Sprachen, aber mit den VBA-Eigenheiten hapert es doch noch.
Folgendes Problem: Ich möchte aus einer Excel-Mappe 4 Reiter in eine neue Datei kopieren und _
diese neue Datei dann mit einem Schreibschutz versehen. Dazu gab es bereits eine alte Version _
des VBA-Codes, den ich jetzt weiter verändern soll. Davor würde ich aber gerne das Original _
verstehen:

Sub DateiErstellen()
Dim Dateiname As String
Dim tbl As Worksheet
Dim Zelle As Range
Dim Datei_Name
Dateiname = ThisWorkbook.Name
Sheets(Array("Blatt1", "Blatt2",_
"Blatt3", "Blatt4")).Copy
Application.ScreenUpdating = False
For Each tbl In ActiveWorkbook.Worksheets
tbl.Activate
tbl.Unprotect Password:=""
Cells.Select
Selection.Locked = True
ActiveSheet.UsedRange.Select
On Error Resume Next
Selection.SpecialCells(xlCellTypeFormulas)_
.Select
For Each Zelle In Selection
Zelle.Value = Zelle.Value
Next Zelle
Next tbl
For Each tbl In ActiveWorkbook.Worksheets
tbl.Activate
ActiveSheet.UsedRange.Select
Selection.Copy
Selection.Paste
tbl.Protect Password:="test"
ActiveSheet.Range("A1").Select
Next tbl
Application.ScreenUpdating = True
Sheets("Blatt1").Select
Datei_Name =_
Left(Dateiname, Len(Dateiname) - 5) & ".xlsx"
abbr = Application.Dialogs(xlDialogSaveAs)_
.Show(Datei_Name, , , , "test")
If abbr = False Then
MsgBox ("Makro abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Exit Sub
End If
ActiveWorkbook.Close
MsgBox ("Neue Datei wurde erstellt")
End Sub

Meine Fragen dazu:
1. Macht für mich die Zuweisung Zelle.Value=Zelle.Value keinen Sinn. Wieso weise ich der Zelle den gleichen Wert nochmal zu?
2. Wieso brauche ich sowohl den "Selection.Locked"-Befehl als auch den Protect-Befehl? Ich hätte ja gedacht dass ich nur Protect brauche, aber ohne locked kommt eine Fehlermeldung.
Wenn ich die neu erstellte Datei öffne, dann kann ich zwar über das aufploppende Dialogfenster das Passwort zum Aufhaben des Schreibschutzes eingeben, aber man kann danach trotzdem nichts an den Reitern verändern.
Über ein paar Erklärungen würe ich mich freuen, Danke!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
dreifach
18.01.2019 11:30:38
Torsten
Hallo, Prof. Dr. Torsten ... bitte schau mal ...
18.01.2019 16:21:24
lupo1
... die Uhrzeiten (Sekunden) der 3 Beiträge an.
Vielleicht kannst Du Dir dann selbst erklären, was passiert ist (&gt=2 Möglichkeiten).
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige