Clever-Excel-Forum

Normale Version: VBA: Löschen nicht gesperrter Felder
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Allerseits,

wie löscht man die nicht gesperrten Felder einer Exceltabelle möglichst schnell?

Der von mir verwendete Code:

Code:
Sub ClearCells()
Dim zelle As Range
  For Each zelle In ActiveSheet.UsedRange
    If (zelle.Locked = False) Then zelle.ClearContents
  Next
End Sub
ist leider sehr langsam, was wahrscheinlich daran liegt, dass auf dem Arbeitsblatt über 20.000 ungesperrte Zellen ohne erkennbares Muster irgendwo rumliegen. Die Möglichkeit mit einem Template zu arbeiten hab ich schon ins Auge gefasst, aber vorher möchte ich die Frage in die Runde stellen.
vg, MM
Hast Du es mal probiert, wenn die Bildschirmaktualisierung abgeschaltet ist?

Gruß
Sebastian
Hab Deinen Code mal ausprobiert. Bei mir geht das ziemlich schnell. Lad doch mal Deine Datei hoch.

Gruß
Sebastian
Hallo,

z.B. so:
Sub ClearCells()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
On Error Resume Next
Cells = ""
On Error GoTo 0
ActiveSheet.Unprotect
End Sub
Gruß Uwe
Vielen Dank an alle. Kuwers Beitrag hat das Problem gelöst!

vg, MM