gerry56
Goto Top

Excel läßt Zellenformatierung nicht löschen

Ich habe eine Tabelle, die mit der Zeit immer mehr Blätter dazu bekam.
Damit bestimmte Werte nicht gelöscht werden können, habe ich bei allen Blättern die Funktion Blatt schützen aktiviert.
Natürlich wurde auch die Funktion "Benutzerdefiniertes Zellenformat" verwendet.
Nun stoße ich an die Grenzen von Excel, da ich kein "Benutzerdefiniertes Zellenformat" mehr hinzufügen kann.
Nun möchte ich die Blätter umgestalten, und einige der "Benutzerdefinierten Zellenformate" umzuändern und die Definitionen löschen.

Problem 1
Ich finde keine Funktion, wie ich auf einem Blatt die Zellen mit einem bestimmten Format (z.B. "## Monate Jahr 2020") finden kann.
Ich habe auch keine Funktion gefunden, die mir anzeigt, auf welchen Blättern einer Exceldatei ein bestimmtes Format (z. B. "## Monate Jahr 2020") verwendet wird.

Problem 2
Wenn ich ein bestimmtes benutzerdefiniertes Zellenformat löschen will, nervt Excel mit der Meldung
[Dateiname.xlsm]Blattname:
Dieser Befehl kann für ein geschütztes Blatt nicht verwendet werden. Sie müssen zuerst den Schutz des Blattes aufheben......
Auf diesem Blatt habe ich diese Zellformatierung gar nicht angewendet.
Wozu soll ich bei etlichen Blättern unnötig den Blattschutz entfernen?

Wenn das notwendig ist, wie kann ich den Blattschutz aller Blätter mit einem einzigen Befehl einschalten und ausschalten.

Kaum veröffentlicht, muß ich den Beitrag auch schon korrigieren.
Ich benutze Windows 7 in der 64Bit Version und Microsoft Office 2007

Bitte um Hilfe
Danke im voraus
Gerry

Content-ID: 636836

Url: https://administrator.de/contentid/636836

Ausgedruckt am: 18.11.2024 um 09:11 Uhr

Meierjo
Meierjo 02.01.2021 um 10:53:23 Uhr
Goto Top
Hallo

Wäre hilfreich, wenn du die Excel-Datei (nur mit dem Blatt, das den Fehler auswirft) hier rein stellen könntest
Ev Passwort beim Blattschutz natürlich entfernen

Gruss
gerry56
gerry56 02.01.2021 um 21:16:19 Uhr
Goto Top
Das Problem ist, daß ich dann etliche Seiten hochladen müßte.

Bei der ersten Fehlermeldung habe ich auf das Blatt gewechselt und den Blattschutz entfernt.
Danach versuchte ich nochmals, das gewünschte Zellformat zu löschen.

Der Effekt war, daß die gleiche Fehlermeldung nochmals kam.
Nur wurde dieses Mal ein anderes Blatt der Exceldatei angeführt.
Geduldig habe ich auf das von Excel aufgelistete Blatt gewechselt.
Wie erwartet, wurde dieses Zellformat auf diesem angegebenen Blatt gar nicht verwendet.
Als geplagter MS-Benutzer entfernte ich, wie vom heiligen Bill gewünscht, den Blattschutz.

Nächster Versuch.
Jetzt kommt die Endlosschleife, die ich nicht will.
Wieder kam die gleiche Fehlermeldung. Nur wurde ein anderer Blattname angezeigt.
Was soll das?

Erstens will ich nicht bei zig Blättern den Blattschutz entfernen und nach der Zellformatlöschung wieder setzen,
und zweitens stellt sich die Frage, wozu Excel den Blattschutz von einem Tabellenblatt entfernt haben will, obwohl das zu löschende Zellformat auf diesem Blatt gar nicht verwendet wurde.

Natürlich wäre in diesem Zusammenhang die von mir im Eingangspost gestellte Problemlösung sehr hilfreich.
A.)
Gibt es eine Problemlösung, die mir alle Blätter einer Exceldatei anzeigt (oder in einem Fenster o.ä.) anzeigt, auf denen das ausgewählte Zellenformat verwendet wird.
B.)
Gibt es eine Problemlösung, die mir alle Zellen einer Exceldatei anzeigt (oder in einem Fenster o.ä.) anzeigt, oder von Zelle zu Zelle springt, in denen das ausgewählte Zellenformat verwendet wird.

Danke im voraus
Gerry
Meierjo
Lösung Meierjo 03.01.2021 aktualisiert um 15:09:47 Uhr
Goto Top
Hallo


Nun stoße ich an die Grenzen von Excel, da ich kein "Benutzerdefiniertes Zellenformat" mehr hinzufügen kann.
Wieso kannst du kein benutzerdefiniertes Zellenformat mehr hinzufügen?
Kommt da eine Fehlermeldung?

Wenn ich ein bestimmtes benutzerdefiniertes Zellenformat löschen will, nervt Excel mit der Meldung
[Dateiname.xlsm]Blattname:
Kann ich nachvollziehen
Gemäss dieser Website hat Excel ein Problem mit dem Entfernen von Zellenformaten, wenn auf irgendeinem Blatt ein Blattschutz aktiv ist

Mit diesem Makro kannst du aber auf allen Blättern den Blattschutz entfernen, bzw setzen
Passwort 123 ggf anpassen, oder entfernen

Option Explicit

Sub Schutz()
    Dim i As Long
       
    For i = 1 To Sheets.Count
        Sheets(i).Protect "123"  
    Next i
    MsgBox "alle Blätter wurden geschützt"  

End Sub

Sub Aufheben()
    Dim i As Long
    For i = 1 To Sheets.Count
        Sheets(i).Unprotect "123"  
    Next i
MsgBox "alle Blätter wurden entsperrt"  

End Sub

Gruss
gerry56
gerry56 04.01.2021 um 15:56:52 Uhr
Goto Top
Hallo Meierjo

Da ich auf allen Blättern einer Exceldatei immer den gleichen Blattschutz verwende, ist dieses Makro sehr hilfreich.
Ich werde es in den nächsten Tagen testen und danach berichten.

Zur Frage, ob da eine Fehlermeldung kommt, lautet die Antwort ja

Ich habe z.B. das Format "## Mon. 2021".
Die Anzahl der Monate des angegebenen Jahres wird für Berechnungen verwendet.
Der Text Monat Jahreszahl dienst zur optischen Information.
Aus diesem Grund war für mich die Verwendung eines Zellenformates logisch und sinnvoll.

Da diese Datei schon mehrere Jahre verwendet wird, gibt es natürlich für jedes Jahr solch ein Zellenformat.
Anscheinen ist die Anzahl der benutzerdefinierten Formate beschränkt.

Vorerst einmal vielen Dank
Gerry
gerry56
gerry56 17.01.2021 um 16:01:45 Uhr
Goto Top
Bitte um Entschuldigung, daß ich mich erst jetzt wieder melde.

Ich hatte leider keine Zeit, da Makro zu testen.
Nun habe ich es geschafft.
Super!!!!!

Das Makro hat mir sehr geholfen.

Bei dieser Gelegenheit ist mir etwas aufgefallen.
1.)
Gibt es eine Möglichkeit / Makro
Das alle nicht verwendeten benutzerdefinierten Zellformate anzeigt und mit Bestätigung löscht.

2.)
Gibt es eine Möglichkeit / Makro
Das alle Blätter (noch besser wäre Zellen) anzeigt, die ein bestimmtes Zellformat verwenden.


Nochmals Danke für das Makro
Gerry
Meierjo
Meierjo 18.01.2021 aktualisiert um 08:28:15 Uhr
Goto Top
Hallo

Probier mal folgendes Makro aus
Beachte aber, dass die Zelle nur bei genauer Uebereinstimmung markiert wird.
In Zeile 5 wird das gewünschte Zellenformat eingegeben
Die Msgbox in Zeile 10 kannst du, wenn gewünscht, auskommentieren
Public Sub Zellenformat()
    Dim WSTabelle As Worksheet
    Dim Zelle As Range
    Dim Numform1$, Numform2$
    Numform2 = InputBox("Bitte gesuchtes Zellenformat eingeben", "@Copyright by Meierjo!", """## Mon. 2021""")  
    For Each WSTabelle In Sheets
        For Each Zelle In WSTabelle.UsedRange
        Numform1 = Zelle.NumberFormatLocal
        If Numform2 = Numform1 Then
            MsgBox "Uebereinstimmung! " & WSTabelle.Name & " ; " & Zelle.Address, vbOKOnly, "@Copyright by Meierjo!"  
            Zelle.Interior.Color = 65535
        End If
        Next Zelle
    Next WSTabelle
End Sub

Bitte vorher eine Sicherung der Datei machen, ich übernehme keine Haftung

Gruss
gerry56
gerry56 18.01.2021 um 12:04:35 Uhr
Goto Top
Hallo Meierjo!

Danke für die rasche Antwort.

Ich werde das Makro in den nächsten Tagen testen.
Natürlich werde ich danach über den Test berichten.

Der Hinweis, vor dem Testen eine Sicherung der Datei zu machen, ist sehr gut.
Ich habe schon lange damit begonnen, die Daten regelmäßig zu sichern, und bei groben Änderungen / Tests eine zusätzliche Sicherung der Datei zu machen.