Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
29.06.2007 09:30:55 |
Christian |
|
|
|
29.06.2007 19:52:17 |
Sozu |
|
|
Aw:Aw:Excel Dateien konservieren |
02.07.2007 12:58:08 |
Christian |
|
|
|
02.07.2007 17:33:26 |
Sozu |
|
|
|
03.07.2007 08:35:54 |
Christian |
|
|
Von:
Christian |
Datum:
02.07.2007 12:58:08 |
Views:
1111 |
Rating:
|
Antwort:
|
Thema:
Aw:Aw:Excel Dateien konservieren |
Hallo Sozu,
habe deinen Vorschlag mal umgesetzt. Da ich mich noch nicht groß in der Materie auskenne meine Frage, stimmt das so??
Sub DateienKomplettKonservieren()
ChDrive "H:"
Pfad = "H:\Projekte\2007\"
If Pfad Like "" Then
Exit Sub
End If
With Application.FileSearch
.LookIn = Pfad
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
Datei = .FoundFiles(i)
Workbooks.Open Datei
Dim ws As Worksheet
Dim dia As Chart
For Each ws In ActiveWorkbook.Worksheets
ActiveSheet.Unprotect password:="zvfr"
ws.Protect password:="zvfr", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next ws
For Each dia In ActiveWorkbook.Charts
ActiveSheet.Unprotect password:="zvfr"
dia.Protect password:="zvfr", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next dia
ActiveWorkbook.Protect password:="zvfr", Structure:=True, Windows:=False
ActiveWorkbook.Close savechanges:=True
Next i
MsgBox "Herzlichen Glückwunsch. Alle Dateien im Ordner Projekte wurden konserviert!!!"
End With
End Sub
Wenn ich es selber nachprüfe ist in jeder Datei wo ws und dia vorkommen ein tabellenblatt was ungeschützt ist. Ansonsten geht es einwandfrei.
Frage: Was habe ich falsch gemacht.
Herzlichen Dank schon einmal im voraus
Gruß Christian
Sozu schrieb am 29.06.2007 19:52:17:
Hey Christian,
dein Makro hängt sich aus mehreren Gründen auf.
1. Du kannst in ausgeblendeten Sheets keine Zelle selectieren, da die Zellen ja nicht sichtbar sind.
2. Diagrammblätter haben keine Zellen. Darum führt Cells.Select im Diagramm zum Fehler.
Zu 1. Warum erst "Cells.Select" bevor "Selection.Looked"?
Setze einfach Cells.Locked und in ausgeblendeten Sheets hast du keine Probleme.
Zu 2. Die Schleife "FOR EACH ws in ActiveWorkbook.WorkSheets .... NEXT ws" funktioniert auch. Natürlich muss du vorher "DIM ws as Worksheet" deklarieren.
Hier werden aber jetzt wirklich nur die Worksheets angewählt. Du kannst dann auch das Sheet(1).Select weglassen und "ws.cells.Locked" und "ws.protect" setzen, was deinen Makro schneller macht.
Für die Diagramme machst du das gleiche mit
DIM dia as Chart
...
For each dia in ActiveWorkbook.Charts
...
dia.protect password:= ...
...
Next dia
Gruß Sozu
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
29.06.2007 09:30:55 |
Christian |
|
|
|
29.06.2007 19:52:17 |
Sozu |
|
|
Aw:Aw:Excel Dateien konservieren |
02.07.2007 12:58:08 |
Christian |
|
|
|
02.07.2007 17:33:26 |
Sozu |
|
|
|
03.07.2007 08:35:54 |
Christian |
|
|