Office: Nicht gsperrte Zellen löschen

Helfe beim Thema Nicht gsperrte Zellen löschen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Ich möchte in einigen Tabellen meiner Arbeitsmappe beim Schließen der Mappe die Inalte der nicht gechützten Zellen zurücksetzen. Folgendes Maxro... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Thorbln, 26. Juni 2009.

  1. Thorbln
    Thorbln Erfahrener User

    Nicht gsperrte Zellen löschen


    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
     
    Thorbln, 26. Juni 2009
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hallo

    .Range("A1:A100").ClearContents

    Gruß Hajo
     
    Hajo_Zi, 26. Juni 2009
    #2
  3. Thorbln
    Thorbln Erfahrener User
    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
     
    Thorbln, 30. Juni 2009
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    Nicht gsperrte Zellen löschen

    Hallo Thorbn,

    benutze den Makrorecorder.
    ActiveSheet.EnableSelection = xlUnlockedCells

    Gruß Hajo
     
    Hajo_Zi, 30. Juni 2009
    #4
  5. Thorbln
    Thorbln Erfahrener User
    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
     
    Thorbln, 1. Juli 2009
    #5
  6. Hajo_Zi
    Hajo_Zi Erfahrener User
    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
     
    Hajo_Zi, 1. Juli 2009
    #6
  7. Thorbln
    Thorbln Erfahrener User
    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.
     
    Thorbln, 1. Juli 2009
    #7
  8. Exl121150 Erfahrener User

    Nicht gsperrte Zellen löschen

    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).
     
    Exl121150, 1. Juli 2009
    #8
  9. Thorbln
    Thorbln Erfahrener User
    Danke für den Tip
    Ich arbeite mit Exel 2002. Auch mit den Zeilen bekomme ich keine Fehlermeldung aber die Zellen bleiben anwählbar.
     
    Thorbln, 2. Juli 2009
    #9
Thema:

Nicht gsperrte Zellen löschen

Die Seite wird geladen...
  1. Nicht gsperrte Zellen löschen - Similar Threads - gsperrte Zellen löschen

  2. Eine Zelle blinken lassen

    in Microsoft Excel Hilfe
    Eine Zelle blinken lassen: Wünsche einen schönen Sonntag in die Runde. Ich habe einen VBA Code, um eine Zelle blinken zu lassen. Nun kann ich das Blinken nur im VBA Code starten. Ich hatte mir vorgestellt, dass wenn ich das...
  3. Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle

    in Microsoft Excel Hilfe
    Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle: Moin Allerseits, mit Verlaub ich bin seit 5 Jahren aus der Materie raus, fange somit von Vorne an. Frage: Anpassung eines bereits Geschrieben Codes. Verwendete Elemente: Quelle> Tabelle "wsLK",...
  4. Hochzählen Zelle Excel oder Office365?

    in Microsoft Excel Hilfe
    Hochzählen Zelle Excel oder Office365?: Hallo zusammen Ich möchte im Excel eine Spalte mit den Schaltknopf hochzählen. Lokal funktioniert es einwandfrei, wie könnte ich es lösen da verschiedene Personen die gleiche Datei öffnen müssen,...
  5. Zelleninhalte in andere Zelle mit Komma getrennt

    in Microsoft Excel Hilfe
    Zelleninhalte in andere Zelle mit Komma getrennt: Hallo, ich weiß nicht, ob ich im EXCEL Bereich richtig bin, da es sich um eine Tabelle aus einer Access Datenbank handelt. Allerdings müsste ich "nur" in dieser Tabelle einiges ändern: Für jeden...
  6. In einer Zelle Zahlen erkennen und trennen

    in Microsoft Excel Hilfe
    In einer Zelle Zahlen erkennen und trennen: Guten Tag zusammen Ich habe folgende Daten in einer Zelle und muss diese in mehrere Spalten aufteilen, insbesondere benötige ich die Zahl, die hinter dem X steht PKP210SX90AOS08...
  7. Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?

    in Microsoft Excel Hilfe
    Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?: Hallo, ich bin ja gerade dabei ein Bestellformular mit Excel zu realisieren. Das ganze sieht soweit auch schon sehr gut aus und funktioniert weitgehendst. Die Textfelder sind nun alle verlinkt...
  8. Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen

    in Microsoft Excel Hilfe
    Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen: Hallo zusammen, ich habe in einer Excel-Tabelle in zwei Tabellenblätter. Tabellenblatt "Artikelstamm" beinhaltet in Spalte A eine Artikel-Nr. und diverse weitere Spalten. Hier ein kleiner Auszug:...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden