Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Clear Content befehl

Clear Content befehl
Justin
Hallo Forum :-)
ThisWorkbook.Worksheets("Sheet1").Range("A5:DW3000").ClearContents
das ist mein Clear Button :-)
der schmeisst aber leider auch alle Lookups raus.. gibt es anstelle von .ClearContents ein anderen Befehl der die Werte löscht aber nicht die Formel tötet :-)

Anzeige
AW: Clear Content befehl
13.09.2012 15:12:11
selli
hallo justin,
verstehe ich das jetzt flasch, oder beisst sich da die katze in den schwanz?
du willt die ergebnisse der formel entfernen, nicht aber die formel. die wird doch aber wieder berechnet und schreibt das ergebnis wieder in die zellen, oder ?
entweder zelle leer oder formel mit ergebnis. eins geht doch nur.
gruß
selli

Anzeige
AW: Clear Content befehl
13.09.2012 15:24:22
Justin
Jap... die Katze macht unsinn..
Also mein eigentliches Problem was ich lösen will ist ich habe ca. 15 Spalten mit ca. 3000 Zeilen, die mit Verweise gefüllt sind.. Parallel dazu habe ich einen ImportData Macro geschrieben was dateien Reinkopiert, dann eine Schleife drüber geht und Trimmt und leere zeilen raushaut usw. Da die Verweise immer wieder Refreshen hau ich mir die ganze Zeit Excel Kaputt = White Screen überlastet....
Ich brauch irgendwie Zeitverzögerte Verweise, quasi datei wird importiert und bearbeitet und wenns fertig ist dann greifen die Verweise...
Konnt ich mich irgendwie richtig ausdrücken? Achja Clearcontent hatte ich an den Anfang gebaut damit alle Felder erst gelert werden und dann Importiert wird anders gab es Probleme... Nun habe ich ca 15*3000 Zellen die 5 mal Refreshen :-(

Anzeige
AW: Clear Content befehl
13.09.2012 15:29:51
hary
Hallo
Versuch mal mit Berechnung aus/einschalten.

Application.Calculation = xlManual
'hier dein Code
Application.Calculation = xlAutomatic

gruss hary

AW: Clear Content befehl
13.09.2012 15:45:35
Justin
Danke erstmal für die schnelle Antwort... ich brauch nur ein kleines Verständniss um das korrekt einzubauen..
Ich würde jetzt einfach so vorangehen:
Application.Calculation = xlManual , das baue ich ziemlich weit oben ein mit der Formel drunter
und dann wenn alles durch ist würd ich , Application.Calculation = xlAutomatic
oder hab ich jetz alles falsch aufgenommen :-)

Anzeige
AW: Clear Content befehl
13.09.2012 15:47:11
hary
Hallo Justin
Genau so. Schau dir mal Franz seinen Code an.
gruss hary

AW: Clear Content befehl
13.09.2012 15:37:27
fcs
Hallo Justin,
deaktiviere während des eintragens und bearbeitens der Daten die automatische Neuberechnung.
Alternativ könntest du die Formeln mit löschen und am Ende vom Makro neu erstellen lassen.
Gruß
Franz
Sub WerteLoeschen()
Dim Zellen As Range, StatusCalc As Long
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEventse = False
.ScreenUpdating = False
End With
On Error GoTo Fehler 'Wenn Blattname falsch oder keine Zellen mit Werten vorhanden
With ThisWorkbook.Worksheets("Sheet1")
Set Zellen = .Range("A5:DW3000").SpecialCells(xlCellTypeConstants)
If Not Zellen Is Nothing Then Zellen.ClearContents
End With
'usw.
Fehler:
With Application
.Calculation = StatusCalc
.EnableEventse = True
.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Clear Content befehl
13.09.2012 15:37:55
fcs
Hallo Justin,
deaktiviere während des Eintragens und Bearbeitens der Daten die automatische Neuberechnung.
Alternativ könntest du die Formeln mit löschen und am Ende vom Makro neu erstellen lassen.
Gruß
Franz
Sub WerteLoeschen()
Dim Zellen As Range, StatusCalc As Long
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEventse = False
.ScreenUpdating = False
End With
On Error GoTo Fehler 'Wenn Blattname falsch oder keine Zellen mit Werten vorhanden
With ThisWorkbook.Worksheets("Sheet1")
Set Zellen = .Range("A5:DW3000").SpecialCells(xlCellTypeConstants)
If Not Zellen Is Nothing Then Zellen.ClearContents
End With
'usw.
Fehler:
With Application
.Calculation = StatusCalc
.EnableEventse = True
.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Clear Content befehl
13.09.2012 15:49:02
Justin
Zitat: deaktiviere während des Eintragens und Bearbeitens der Daten die automatische Neuberechnung
Genau das ist das was ich suche ..
reicht es wenn ich
.ScreenUpdating = False und irgendwo am ende dann ScreenUpdating = True schreiben?

AW: Clear Content befehl
13.09.2012 16:49:09
fcs
Hallo Justin,
entscheidend ist hier
Application.Calculation zu Beginn auf manuell zu setzen und am Ende dann auf automatisch oder den vorherigen Stand (macht bei mir StatusCalc).
Die Bildschirmaktualisierung ist "nur" ein zweiter Aspekt der die Makroausführung beschleunigt, weil nicht nach jeder Änderung die das Makro verursacht eine Aktualisierung ausgeführt wird.
Wenn du unbedingt die Berechnung am ende nochmals aktualisieren willst, dann geht das mit
Application.Calculate
Die 3 von mir gesetztzten Eigenschaften sind die typischen Makro-Bremsen.
Das Setzen von EnableEvents verhindert das unerwünschte -manchmal in eine Endlosschleife führende- starten von Ereignismakros, während der Ausführung eines Makros.
Gruß
Franz

Anzeige
AW: Clear Content befehl
13.09.2012 15:29:22
fcs
Hallo Justin,
mit dem folgenden Makro werden nur die Inhalte Zellen mit Werten gelöscht.
Aber dann zeigend deien Lookup-Formeln ggf. einen Fehlerwert an.
Gruß
Franz
Sub WerteLoeschen()
'Inhalte in Zellen ohne Formel löschen
Dim Zellen As Range
On Error GoTo Fehler 'Wenn Blattname falsch oder keine Zellen mit Werten vorhanden
With ThisWorkbook.Worksheets("Sheet1")
Set Zellen = .Range("A5:DW3000").SpecialCells(xlCellTypeConstants)
If Not Zellen Is Nothing Then Zellen.ClearContents
End With
Fehler:
End Sub

Anzeige
AW: Clear Content befehl
13.09.2012 16:24:47
Justin
Bin noch am probieren also... ich hab noch die Verweise drinne die ich per Hand eingeklickt habe also kein Makro code...
Dann habe ich das eingefügt..
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Mein Code
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Ich glaub ich bin noch extrem auf dem Holzweg :-)
Also so wie ich mir das gedacht habe sollte jetz die Neuberechnung gestoppt werden, mein Code läuft durch und dann wird halt neuberechnet quasi screen update true .. aber klappt nicht :-(

Anzeige
AW: Clear Content befehl
13.09.2012 17:24:33
Justin
Hallo nochmal,
jetz geht so einiges nichtmehr.. :-(
Also , so wie ich verstanden habe :
1. auf xlCalculationManual setzen
2. Code ausführen
3. wieder auf xlCalculationAutomatic
4. ScreenUpdating = true
Jetz ist mein Problem wie schreib ich das auf also wohin, habs folgendermaßen Probiert jedoch fliegen mir irgendwie die Verweise raus
With Application
.Calculation = xlCalculationManual
"dann mein Code"
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
funktioniert leider nicht .. ist ne fummel arbeit geworden ich weis das es bestimmt ne mini sache ist.. :-(

Anzeige
AW: Clear Content befehl
13.09.2012 23:57:27
fcs
Hallo Justin,
warum machst du es denn nicht so wie von mir in meinem Beispiel dargestellt/vorgeschlagen? Das hat sich 1000-fach bewährt!!!
https://www.herber.de/forum/messages/1278504.html
.... habs folgendermaßen Probiert jedoch fliegen mir irgendwie die Verweise raus
Was sind bei dir Verweise? Formeln?
Dann prüfe die Zellbereiche, deren Inhalte du löscht.
mit
ThisWorkbook.Worksheets("Sheet1").Range("A5:DW3000").ClearContents

verschwinden -wie du ja schon festgestellt hast - alle Inhalte in desem Zellbereich im Excel-Nirwana. An dieser Stelle muss du ansetzen und die Lösung hierfür (wenn Formeln nicht gelöscht werden sollen) hab ich dir in meiner Antwort auch schon gepostet.
Gruß
Franz

Anzeige
AW: Clear Content befehl
17.09.2012 09:50:47
Justin
Sry das ich mich falsch ausgedrückt habe bzw. dir das Gefühl gegeben hab, das ich deine Idee nicht umsetze ...
Also ich habe vergessen zu erwähnen das ich mein Code in eine größere Excell Tabelle integriert habe...Sprich: Ab Q5 beginnt mein Import usw. von A bis O stehen die Verweise die sich von Q bis U bedienen sollen

Private Sub CommandButton1_Click()
'relevante Spalten aus Quelldatei: DacsUser,MaxCount,Type,Global_Name,Description
'1. TABELLE WIRD GELEERT
ThisWorkbook.Worksheets("Sheet1").Range("Q5:DW3000").ClearContents      

Ich finde den Fehler nicht warum manuell gesetzte Verweise z.B in der Zelle A5 rausfliegen nachdem ich Importiert habe... das mit dem xlcalculate habe ich jetz ma rausgenommen das setz ich später genau wie du gesagt hast rein ;-(

Anzeige
AW: Clear Content befehl
17.09.2012 12:13:29
Justin
Für Alle die das irgendwann lesen,
hab die Verweise mittels Code reinsetzen lassen am ende meines Sub´s ..
und alles ist wieder gut.. :-) Danke nochmals für eure Geduld und Hilfe
;
Anzeige
Anzeige

Infobox / Tutorial

Clear Content in Excel: So geht's


Schritt-für-Schritt-Anleitung

Um Inhalte in einem Excel-Dokument zu löschen, ohne dabei Formeln zu entfernen, kannst du die Methode ClearContents in VBA verwenden. Hier sind die Schritte:

  1. Öffne den VBA-Editor (ALT + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge den folgenden Code ein:

    Sub ClearContent()
       Dim Zellen As Range
       With ThisWorkbook.Worksheets("Sheet1")
           Set Zellen = .Range("A5:DW3000").SpecialCells(xlCellTypeConstants)
           If Not Zellen Is Nothing Then
               Zellen.ClearContents
           End If
       End With
    End Sub
  4. Führe das Makro aus (F5), um die Inhalte zu löschen.


Häufige Fehler und Lösungen

  • Problem: Alle Formeln werden ebenfalls gelöscht.

    • Lösung: Stelle sicher, dass du nur die Zellen mit konstanten Werten löschst, indem du SpecialCells(xlCellTypeConstants) verwendest.
  • Problem: Der Makro läuft langsam.

    • Lösung: Deaktiviere die automatische Neuberechnung und Bildschirmaktualisierung, bevor du den Code ausführst:
    Application.Calculation = xlManual
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True

Alternative Methoden

Falls du keine VBA-Skripte verwenden möchtest, kannst du auch die folgenden Möglichkeiten in Excel nutzen:

  • Manuelles Löschen: Wähle die Zellen aus und drücke die Entf-Taste. Dies löscht sowohl Inhalt als auch Formeln.
  • Bedingte Formatierung: Verwende Filter, um nur die Zellen mit bestimmten Kriterien anzuzeigen und manuell zu löschen.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ClearContents in verschiedenen Szenarien verwenden kannst:

  1. Bestimmte Zellen löschen:

    ThisWorkbook.Worksheets("Sheet1").Range("B2:B10").ClearContents
  2. Alle Zellen einer bestimmten Zeile löschen:

    ThisWorkbook.Worksheets("Sheet1").Rows(5).ClearContents
  3. Inhalte in einem spezifischen Bereich löschen, ohne die Formeln zu beeinflussen:

    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets("Sheet1").Range("D1:D100")
    rng.SpecialCells(xlCellTypeConstants).ClearContents

Tipps für Profis

  • Verwende .Clear mit Bedacht: .Clear entfernt sowohl den Inhalt als auch die Formatierung. Wenn du nur den Inhalt löschen möchtest, bleibe bei .ClearContents.
  • Nutze Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen Makros, um sicherzustellen, dass der Code auch bei unerwarteten Eingaben stabil bleibt.

    On Error Resume Next
    ' Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Was passiert, wenn ich .ClearContents verwende? Mit .ClearContents werden nur die Werte in den Zellen gelöscht, jedoch bleiben die Formeln und Formatierungen erhalten.

2. Wie kann ich Inhalte in Excel schneller löschen? Deaktiviere die Bildschirmaktualisierung und die automatische Berechnung, um die Ausführungsgeschwindigkeit deines Makros zu erhöhen.

3. Gibt es eine Möglichkeit, alle Inhalte in einem bestimmten Bereich zu löschen? Ja, du kannst den Befehl ClearContents auf einen Bereich anwenden, um alle Inhalte dort zu löschen:

ThisWorkbook.Worksheets("Sheet1").Range("A1:A100").ClearContents

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige