Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2002] Nicht gsperrte Zellen löschen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Thorbln
Office-Hilfe.com-Erfahrener
Office-Hilfe.com-Erfahrener


Anmeldedatum: 22.01.2008
Beiträge: 64
Wohnort: Berlin

BeitragVerfasst am: 26.06.2009, 02:00 Nach oben

Ich möchte in einigen Tabellen meiner Arbeitsmappe beim Schließen der Mappe die Inalte der nicht gechützten Zellen zurücksetzen.
Folgendes Maxro löscht mir aber alle Zellen.

Private Sub Workbook_BeforeClose(cancel As Boolean)
With Sheets("Tabelle3")
.Unprotect "Kennwort"
.Cells.ClearContents
.Protect "Kennwort"
End With
ThisWorkbook.Save
End Sub


Wie kann ich nur die ungeschützten Zellen zurücksetzen und die Formeln usw beibehalten?

Danke im Voraus
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 1243
Wohnort: Neubrandenburg

BeitragVerfasst am: 26.06.2009, 07:17 Nach oben

Hallo

.Range("A1:A100").ClearContents

Gruß Hajo

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
Thorbln
Office-Hilfe.com-Erfahrener
Office-Hilfe.com-Erfahrener


Anmeldedatum: 22.01.2008
Beiträge: 64
Wohnort: Berlin

BeitragVerfasst am: 30.06.2009, 15:51 Nach oben

Vielen Dank Hajo.
Klappt vorzüglich. Ein kleines Problem bleibt allerdings noch.
Unprotect gibt die Tabelle zwar frei, aber Protekt schützt sie mit der Standarteinstellung "geschützte und ungeschützte Zellen auswählen"
Kann man das irgendwie ändern so dass nur noch die ungeschützten Zellen anwählbar sind?
sonnst ergibt das nicht viel Sinn.
Code momentan:
Private Sub Workbook_BeforeClose(cancel As Boolean)
With Sheets("Einkauf")
.Unprotect "Kennwort"
.Range("A2:c18").ClearContents
.Protect "Kennwort"
End With
ThisWorkbook.Save
End Sub


Danke
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 1243
Wohnort: Neubrandenburg

BeitragVerfasst am: 30.06.2009, 15:55 Nach oben

Hallo Thorbn,

benutze den Makrorecorder.
ActiveSheet.EnableSelection = xlUnlockedCells

Gruß Hajo

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
Thorbln
Office-Hilfe.com-Erfahrener
Office-Hilfe.com-Erfahrener


Anmeldedatum: 22.01.2008
Beiträge: 64
Wohnort: Berlin

BeitragVerfasst am: 01.07.2009, 01:58 Nach oben

Danke für den tip Hajo,
manchmal sieht man den Wald vor Bäumen nicht.
An die Möglichkeit habe ich überhaupt nicht gedacht.

So, nach fast 9 Stunden rumexperimentieren gebe ich auf.
Code

Private Sub CommandButton1_Click()
With Sheets("Einkauf")
.Unprotect
.Range("a2:c18").ClearContents
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End With
ThisWorkbook.Save
Application.Quit
End Sub


löscht die gewünschten Zeilen, entriegelt das Arbeitsblatt und verriegelt es auch wieder, aber alle Zellen sind, trotz aktivem Blattschutz anwählbar und die Formeln können problemlos gelöscht werden, was eigentlich nicht sein sollte.
Ich weiß nicht mehr wo ich den Fehler noch suchen soll
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 1243
Wohnort: Neubrandenburg

BeitragVerfasst am: 01.07.2009, 08:28 Nach oben

Hallo Thorbin,

Du solltest allle Befehle beziehen auf das Tabellenblatt auf, das das ausgeführt werden soll.
Private Sub CommandButton1_Click()
With Sheets("Einkauf")
.Unprotect
.Range("a2:c18").ClearContents
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
.EnableSelection = xlUnlockedCells
End With
ThisWorkbook.Save
Application.Quit
End Sub

Gruß Hajo

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.

Zuletzt bearbeitet von Hajo_Zi am 02.07.2009, 10:12, insgesamt einmal bearbeitet
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
Thorbln
Office-Hilfe.com-Erfahrener
Office-Hilfe.com-Erfahrener


Anmeldedatum: 22.01.2008
Beiträge: 64
Wohnort: Berlin

BeitragVerfasst am: 01.07.2009, 12:40 Nach oben

Hallo Hajo,
es ist zum Mäuse melken. Bis ' ThisWorkbook.Save' funktioniert alles einwandfrei. So bald ich aber 'Application.Quit' hinzu füge sind alle Zellen anwähl- und Löschbar.
Das gleiche Problem besteht übrigens auch wenn ich nur bis 'ThisWorkbook.Save' über Makro arbeite und die Tabelle manuell schließe. Auch dann sind nach dem öfnen die Felder wieder anwählbar.

Sorry, muss mich berichtigen.
Die Zellen sind zwar anwählbar aber geschützt. Beim Versuch in eine gesperrte Zelle zu schreiben kommt der Hinweiß.
Es währe aber schön wenn aich die Anwählbarkeit ausgeschlossen werden könnte.
Benutzer-Profile anzeigenPrivate Nachricht senden
Exl121150
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 24.11.2008
Beiträge: 913

BeitragVerfasst am: 01.07.2009, 15:51 Nach oben

Hallo,

kann es sein, dass Du am Anfang des Codemoduls die Compileranweisung 'Option Explicit' nicht verwendest?

Ich habe Excel2007. Für diese Version ist in der Hilfe der Hinweis enthalten, dass die XlEnableSelection-Enumeration erst seit dieser Version existiert. Du verwendest im Makro die Konstante 'xlUnlockedCells', um die Zellauswahl auf die ungesperrten Zellen einzuschränken. Da es diese Konstante in Deiner Excel-Version noch nicht gibt und Du ferner die Copileranweisung 'Option Explicit' nicht verwendest, erzeugt der Compiler automatisch eine Variable namens 'xlUnlockedCells' (ohne eine Fehlermeldung zu produzieren), weist dieser den Wert 0 (=Null) zu. Da aber der Wert 0 in diesem Zusammenhang das gleiche bedeutet wie 'xlNoRestrictions', können damit alle Zellen ausgewählt werden.

Um das Problem zu beseitigen, folgende 2 Zeilen ganz am Anfang des Moduls einfügen:
Option Explicit
Const xlUnlockedCells=1


Im Folgenden noch der Auszug aus der Excel2007-Hilfe zur XlEnableSelection-Enumeration :
Gibt an, was auf dem Blatt ausgewählt werden kann.
Versionsinformationen: Hinzugefügte Version: Excel 2007

Name Wert Beschreibung
xlNoRestrictions 0 Alles kann ausgewählt werden.
xlNoSelection -4142 Nichts kann ausgewählt werden.
xlUnlockedCells 1 Nur nicht gesperrte Zellen können ausgewählt werden.


EDIT:
Die Compileranweisung 'Option Explicit' sollte man stets (als 1. Zeile) in jedem Codemodul verwenden - sie ist ein simples Mittel, um heimtückische Deklarationsfehler ans Tageslicht zu bringen.
Wird sie als 1.Zeile in einem Modul eingesetzt, bewirkt sie Folgendes:
Trifft der Compiler auf eine Variable, die in keiner Deklaration enthalten ist, erzeugt er eine entsprechende Fehlermeldung und hält die Compilierung an.
Wird diese Compileranweisung nicht verwendet, passiert Folgendes:
Trifft der Compiler auf eine Variable, die in keiner Deklaration enthalten ist, erzeugt er für sie dennoch eine Speicherbelegung (der Typ richtet sich dann entweder nach dem 1. oder letzten Zeichen der Variablen) und weist ihr einen Standardwert zu (je nach Variablenyp).

_________________
Liebe Grüße
Exl121150

Win XP Professional SP3
Office 2007 Professional SP2
Benutzer-Profile anzeigenPrivate Nachricht senden
Thorbln
Office-Hilfe.com-Erfahrener
Office-Hilfe.com-Erfahrener


Anmeldedatum: 22.01.2008
Beiträge: 64
Wohnort: Berlin

BeitragVerfasst am: 02.07.2009, 09:14 Nach oben

Danke für den Tip
Ich arbeite mit Exel 2002. Auch mit den Zeilen bekomme ich keine Fehlermeldung aber die Zellen bleiben anwählbar.
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge vba shellexecute - nur .xls geht nich... miriki Microsoft Excel Hilfe 3 01.09.2010, 10:29 Letzten Beitrag anzeigen
Keine neuen Beiträge gestrichelte Linien werden im Diagram... fellow86 Microsoft Excel Hilfe 1 31.08.2010, 17:25 Letzten Beitrag anzeigen
Keine neuen Beiträge Bedingte Anweisung für leere Zellen schelmno.1 Microsoft Excel Hilfe 2 31.08.2010, 11:42 Letzten Beitrag anzeigen
Keine neuen Beiträge Makro zum löschen von Inhalten -DRINGEND Excelking Microsoft Excel Hilfe 2 26.08.2010, 16:09 Letzten Beitrag anzeigen
Keine neuen Beiträge Texte aus Zellen Filtern Lutze Microsoft Excel Hilfe 4 24.08.2010, 13:07 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Tuning Forum | krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole


Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de