Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Datei wird automatisch mit aktviertem Blattschutz gestartet

1,177 views
Skip to first unread message

Marko Heiroth

unread,
Aug 29, 2002, 2:56:24 AM8/29/02
to
Hallo,

ich habe wieder ein Problem (oder 2) mit meiner Datei.
1) Die Datei wird automatisch mit eingeschalteten Blattschutz geöffnet.
Dieses würde ich aber selbst gern manuell einstellen. Auch wenn ich die
Datei mit deaktiviertem Blattschutz abspeichere und dann wieder öffne, ist
der Blattschutz wieder aktiv.

2) Wenn ich diese Datei öffne, keine Änderungen vornehme und wieder
schliesse, kommt die Abfrage speichern oder nicht, obwohl ich nichts
geändert habe.

Könnt ihr mir helfen?

Marko


Thomas Ramel

unread,
Aug 29, 2002, 3:15:28 AM8/29/02
to
Grüezi Marko

Marko Heiroth schrieb:


>
> 1) Die Datei wird automatisch mit eingeschalteten Blattschutz geöffnet.
> Dieses würde ich aber selbst gern manuell einstellen. Auch wenn ich die
> Datei mit deaktiviertem Blattschutz abspeichere und dann wieder öffne, ist
> der Blattschutz wieder aktiv.

Hast Du Workbook_Open oder Auto_Open-Ereignisse in der Datei, die den
blattschutz setzten?

> 2) Wenn ich diese Datei öffne, keine Änderungen vornehme und wieder
> schliesse, kommt die Abfrage speichern oder nicht, obwohl ich nichts
> geändert habe.

Hast Du Funktionen wie Heute(), Now() oder ähnliches in den Formeln oder
ableufenden Makros verwendet? Diese wären dann für die Veränderung
verantwortlich und deshalb wird beim Schliessen nachgefragt.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

http://www.4853.ch/Schlesinger

Marko Heiroth

unread,
Aug 29, 2002, 4:24:57 AM8/29/02
to
Private Sub ComboBox1_Change()
Select Case ComboBox1.Text
Case "Sortierung nach Produktgruppe"
Application.Run ("B")
Case "Sortierung nach Produkt"
Application.Run ("K")
Case "Sortierung nach Dokumentcode"
Application.Run ("C")
Case "Sortierung nach Dokumenttitel"
Application.Run ("E")
Case "Sortierung nach Ausgabe (aufsteigend)"
Application.Run ("ed_aufw")
Case "Sortierung nach Ausgabe (absteigend)"
Application.Run ("ed_abw")
Case "Sortierung nach Status"
Application.Run ("AE")
Case "Sortierung nach Future Plan"
Application.Run ("AH")
Case "Sortierung nach Literaturart"
Application.Run ("N")
Case "Sortierung nach Sprache"
Application.Run ("Q")
Case "Sortierung nach Marions Nr."
Application.Run ("A")
Case "Sortierung nach Maxitrolnummer"
Application.Run ("D")
Case "Sortierung nach Add. Descr."
Application.Run ("Y")
Case "Sortierung nach Seitenanzahl"
Application.Run ("AB")
Case "Neues Dokument einfügen"
Application.Run ("neues_Dokument")
End Select
End Sub


Private Sub Workbook_Open()
With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen
.Protect userinterfaceonly:=True
.EnableOutlining = True
End With
End Sub


Moin Thomas,

hier sind meine beiden Makros. Müsste ich im zweiten Makro das True in False
ändern? So: .Protect userinterfaceonly:=False? Aber dann ist ja die Datei
bei jedem öffnen nicht mehr geschütz oder? Ich hätte ja gern, dass die
zuletzt gesetzte Option gespeichert bleibt.

Funktionen wie heute und ähnliches habe ich nicht in meiner Tabelle.

Marko


Thomas Ramel

unread,
Aug 29, 2002, 4:46:18 AM8/29/02
to
Grüezi Marko

Marko Heiroth schrieb:
>

> Private Sub Workbook_Open()
> With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen
> .Protect userinterfaceonly:=True
> .EnableOutlining = True
> End With
> End Sub

Ohh, das kenne ich doch ;-)

> hier sind meine beiden Makros. Müsste ich im zweiten Makro das True in False
> ändern? So: .Protect userinterfaceonly:=False? Aber dann ist ja die Datei
> bei jedem öffnen nicht mehr geschütz oder? Ich hätte ja gern, dass die
> zuletzt gesetzte Option gespeichert bleibt.

Beim Öffnen wird das Tabellenblatt jedesmal geschützt, mit der Option,
dass die Gliederung noch funktioniert. Dies kannst Du nur über VBA
erreichen.
Du könntest eine Abfrage einbauen, ob das Blatt geschützt ist; wenn ja,
dann nochmals schützen aber mit der Möglichkeit zur Gruppierung, wenn
nein, dann keinen Schutz erstellen:

Private Sub Workbook_Open()
With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen

If .ProtectContents And .ProtectDrawingObjects Then


.Protect userinterfaceonly:=True
.EnableOutlining = True

End If
End With
End Sub

Marko Heiroth

unread,
Aug 29, 2002, 5:11:28 AM8/29/02
to
Hey Thomas,

bin wieder mal begeistert. Das geht!!!! VBA ist gar nicht so schlecht. Ich
sollte mich mehr damit befassen. Sach mal, woher weißt du diesen "Scheiss"?
Nur durch probieren basteln und Online-Hilfe lesen bestimmt nicht oder?
Kennst du vielleicht ein paar guten Seiten im Netz, wo man sich belesen kann
oder gute VBA skripte findet?

Die Sache mit der Abfrage zum speichern ... Ich könnte damit leben, obwohl
ich nicht weiß, woher diese Abfrage kommt. Ich habe nur die Datei geöffnet
und gleich wieder geschlossen. Naja.

Also vielen Dank Thomas und einen schönen Tag,

Marko


Thomas Ramel

unread,
Aug 29, 2002, 5:37:59 AM8/29/02
to
Grüezi Marko

Marko Heiroth schrieb:
>

> VBA ist gar nicht so schlecht.

Das hast Du aber schön gesagt ;-)

> sollte mich mehr damit befassen. Sach mal, woher weißt du diesen "Scheiss"?
> Nur durch probieren basteln und Online-Hilfe lesen bestimmt nicht oder?

Zum grossen Teil schon. Eine echte Hilfe ist mir auch diese NG hier
(immer noch!). Durch Mitlesen und versuchen das Geschreibene
nachzuvollziehen kommt eine ganze Menge an 'Know-How' zusammen.
Und dann gibt's da noch 3 Dinge:
- Üben
- Üben
- Üben

> Kennst du vielleicht ein paar guten Seiten im Netz, wo man sich belesen kann
> oder gute VBA skripte findet?

Hier einige Quellen. Daneben lohnt sich der Kauf von Literatur zum
Thema.

http://www.pba.de/service/dok/VBA5_in_21_Tagen/httoc.htm
http://www.joanneum.ac.at/SERVICES/VBAEXCEL
http://www.edv-raum.de/excelweb/index.htm

http://www.fernuni-hagen.de/URZ/urzbib/ls_broschueren.html 'Die PDF's zu
Excel
http://www.excel-cd.de/download.htm 'Die Datei xlBasics

> Die Sache mit der Abfrage zum speichern ... Ich könnte damit leben, obwohl
> ich nicht weiß, woher diese Abfrage kommt. Ich habe nur die Datei geöffnet
> und gleich wieder geschlossen. Naja.

Kommt die mit dem neuen Workbook_Open() immer noch?
Du hast nicht etwa die Sortierung verändert?

Marko Heiroth

unread,
Aug 29, 2002, 5:53:22 AM8/29/02
to
Hi Thomas,

Erst mal danke für die Links und Tipps. Da muss ich mich wohl mal ransetzen
und büffeln. :)

>> Die Sache mit der Abfrage zum speichern ... Ich könnte damit leben,
obwohl
>> ich nicht weiß, woher diese Abfrage kommt. Ich habe nur die Datei
geöffnet
>> und gleich wieder geschlossen. Naja.

>Kommt die mit dem neuen Workbook_Open() immer noch?
>Du hast nicht etwa die Sortierung verändert?

Ich habe die Sortierung nicht verändert, die Datei geöffnet und gleich
wieder geschlossen. Ich habe nicht mal eine Zelle angeklickt.


Aber das artet hier langsam aus. Ich hätte noch eine Frage, bei
eingeschaltetem Blattschutz kann ich meine Sortiermakros nicht mehr laufen
lassen. Da kommt dann die Fehlermeldung: MS Visual Basic, Laufzeitfehler
1004, Beenden - Debuggen - Hilfe.

Marko


Thomas Ramel

unread,
Aug 29, 2002, 10:31:38 AM8/29/02
to
Grüezi Marko

Marko Heiroth schrieb:
>

> Erst mal danke für die Links und Tipps. Da muss ich mich wohl mal ransetzen
> und büffeln. :)

Viel Spass ;-)

> Aber das artet hier langsam aus. Ich hätte noch eine Frage, bei
> eingeschaltetem Blattschutz kann ich meine Sortiermakros nicht mehr laufen
> lassen. Da kommt dann die Fehlermeldung: MS Visual Basic, Laufzeitfehler
> 1004, Beenden - Debuggen - Hilfe.

Logisch; das Blatt ist geschützt und die Sortierung will die Inhalte der
Zellen verändern. Da meckert Excel eben.
Baue in die Sortiermakros das Aufheben und wieder setzten des Schutzes
mit ein:

...
Worksheets("Literature").Unprotect

'die Sortier-befehle

Worksheets("Literature").Protect userinterfaceonly:=True
...

Marko Heiroth

unread,
Aug 29, 2002, 10:58:55 AM8/29/02
to
Und wieder zum x-ten Mal ein grosses Lob und herzlichen Dank für die Hilfe.
Wie immer hat auch das auf Anhieb gefunzt.

Danke und einen schönen Feierabend,

Marko


Thomas Ramel

unread,
Aug 29, 2002, 11:02:48 AM8/29/02
to
Grüezi Marko

Marko Heiroth schrieb:
>

> Und wieder zum x-ten Mal ein grosses Lob und herzlichen Dank für die Hilfe.
> Wie immer hat auch das auf Anhieb gefunzt.

Danke für die Blumen ;-)

Mit einer klaren Problembeschreibung ist meist die halbe Lösung bereits
'im Kasten'. Und meist probiere ich es aus bevor ich etwas poste; da
lerne ich dann selbst am meisten.

Marko Heiroth

unread,
Aug 30, 2002, 2:49:47 AM8/30/02
to
Guten Morgen Thomas,

> Mit einer klaren Problembeschreibung ist meist die halbe Lösung bereits
> 'im Kasten'.

So versuche ich mich immer auszudrücken.

Jetzt muss ich aber erst mal all meine Sortier-Makros mit dem
Protect-Unprotect zu bestücken.

ALso noch einmal Danke und bis demnächst :),

Marko


Thomas Ramel

unread,
Aug 30, 2002, 3:00:43 AM8/30/02
to
Grüezi Marko

Marko Heiroth schrieb:
>

> > Mit einer klaren Problembeschreibung ist meist die halbe Lösung bereits
> > 'im Kasten'.
>
> So versuche ich mich immer auszudrücken.

Ich halte es ähnlich; es steigert die 'Effizienz' enorm, wie man hier
geseht hat.

> ALso noch einmal Danke und bis demnächst :),

Bitte schön, ist gern geschehen.

Und Danke für die Rückmeldung.

Marko Heiroth

unread,
Aug 30, 2002, 4:57:29 AM8/30/02
to
Aach, shit, ich habe doch noch ein grosses Problem: bei aktiviertem
Blattschutz funktionieren die Autofilter nicht mehr. Hier meinMakro:

Private Sub Workbook_Open()
With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen
If .ProtectContents And .ProtectDrawingObjects Then
.Protect userinterfaceonly:=True
.EnableOutlining = True
End If
End With
End Sub

kann man noch die Autofilter irgendwie aktivieren, die sind ja doch ganz
hilfreich!

Marko


Daniel Schmitz

unread,
Aug 30, 2002, 5:39:00 AM8/30/02
to
Hi Marko,


Du musst bevor das Blatt geschützt wird den
Filter akitvieren und dann kannst Du in Deinen
Code noch die unten angezeigte Zeile einfügen.
Damit sollte es funktionieren!

>
> Private Sub Workbook_Open()
> With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen
> If .ProtectContents And .ProtectDrawingObjects Then
> .Protect userinterfaceonly:=True
> .EnableOutlining = True

.EnableAutoFilter = True

> End If
> End With
> End Sub
>
> kann man noch die Autofilter irgendwie aktivieren, die sind ja doch ganz
> hilfreich!
>
> Marko


Gruss
Daniel


Marko Heiroth

unread,
Aug 30, 2002, 5:53:29 AM8/30/02
to
Hi Daniel,

danke für die prima Hilfe. In meinem "Start-Makro" (dieseArbeitsmappe)
funktioniert das:

Private Sub Workbook_Open()
With Worksheets("Literature") 'Hier den Tabellenblattnamen anpassen
If .ProtectContents And .ProtectDrawingObjects Then
.Protect userinterfaceonly:=True
.EnableOutlining = True
.EnableAutoFilter = True
End If
End With
End Sub

Jetzt habe ich aber noch verschiedene Sortiermakros, da muss ich diese eine
Zeile noch irgendwie reinzwängen. Nur wie? Hier ist so ein Sortiermakro:

Sub K()
'
' K Makro
' Makro am 28.08.2002 von Marko Heiroth aufgezeichnet
'

'
Worksheets("Literature").Unprotect
Rows("5:2000").Select
Selection.Sort Key1:=Range("K5"), Order1:=xlAscending, Key2:=Range("N5")
_
, Order2:=xlAscending, Key3:=Range("Q5"), Order3:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
Rows("5:2000").EntireRow.AutoFit
Range("K5").Select
EnableAutoFilter = True


Worksheets("Literature").Protect userinterfaceonly:=True

End Sub

Marko


Marko Heiroth

unread,
Aug 30, 2002, 5:57:43 AM8/30/02
to
> Sub K()
> '
> ' K Makro
> ' Makro am 28.08.2002 von Marko Heiroth aufgezeichnet
> '
>
> '
> Worksheets("Literature").Unprotect
> Rows("5:2000").Select
> Selection.Sort Key1:=Range("K5"), Order1:=xlAscending,
Key2:=Range("N5")
> _
> , Order2:=xlAscending, Key3:=Range("Q5"), Order3:=xlAscending,
> Header:= _
> xlGuess, OrderCustom:=1, MatchCase:=False,
> Orientation:=xlTopToBottom
> Rows("5:2000").EntireRow.AutoFit
> Range("K5").Select
> EnableAutoFilter = True
> Worksheets("Literature").Protect userinterfaceonly:=True
> End Sub

so habe ich es versucht, auch mit einem Punkt vor EnableAutoFilter. Da kam
eine Fehlermeldung.

Marko


Marko Heiroth

unread,
Aug 30, 2002, 7:37:30 AM8/30/02
to
Hat sich erledigt, habs selbst gefunden: ActiveSheet.EnableAutoFilter = True

Marko


0 new messages