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

Forumthread: VBA code nur Inhalte löschen

VBA code nur Inhalte löschen
Stef
Hallo zusammen
Ich benutzte dieses

Private Sub Workbook_Open()
For Each cl In Sheets("Tabelle1").Range("Ax5:AX29")
If cl 

hätte aber gerne die Formatierungen der Zellen behalten (also nur Inhalte löschen)
LG
Anzeige
ClearContents o.w.T.
15.10.2011 10:31:49
Reinhard


AW: ClearContents            o.w.T.-Test
15.10.2011 10:33:04
Reinhard


AW: VBA code nur Inhalte löschen
15.10.2011 10:32:19
Hajo_Zi
benutze
.ClearContents

Anzeige
AW: VBA code nur Inhalte löschen
15.10.2011 10:37:57
Stef
Danke für die Turbo Antwort
jedoch
Hab ich das schon probiert, leider entfernt es mir immer noch die Rahmen.
LG
AW: VBA code nur Inhalte löschen
15.10.2011 10:39:53
Hajo_Zi
das paziert nicht durch .ClearContents
Setzt Du die vielleicht durch bedingte Formatierung?
Gruß Hajo
Anzeige
AW: VBA code nur Inhalte löschen
15.10.2011 10:55:11
Stef
Hallo Hajo
Ne Jungfreuliche Zelle
das einzige ist, eine Formel bezieht sich auf die Zelle
=WENN(ODER(ZÄHLENWENN($A$37:$A$79;$A38)=0;ZÄHLENWENN($AX$5:$AX$30;$A38)>0);""; WENN(ODER(ZÄHLENWENN($A$37:$A$79;$A38)=0;ZÄHLENWENN($AT$5:$AT$30;$A38)>0);""; WENN(ODER(ZÄHLENWENN($A$37:$A$79;$A38)=0;ZÄHLENWENN($BA$5:$BA$30;$A38)>0);""; WENN(ODER(ZÄHLENWENN($A$37:$A$79;$A38)=0;ZÄHLENWENN($C$5:$AM$5;$A38)>0);"";$A38))))
Und sich ein ein ButtonMacro auf die Zelle bezieht
Sub Montagbearbeiten()
'
' Montagbearbeiten Makro
'
Sheets("Tabelle1").Select
Columns("AN:AS").Select
Selection.EntireColumn.Hidden = False
Columns("AO:AS").Select
Selection.EntireColumn.Hidden = True
Range("A5:K10,A13:K18,A21:K26,A29:K34").Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 10092543
End With
Range("A5:K5,A13:K13,A21:K21,A29:K29").Select
With Selection.Interior
.Pattern = xlNone
End With
Range("c5").Select
Anzeige
AW: VBA code nur Inhalte löschen
15.10.2011 10:58:26
Hajo_Zi
Du hast den falschen Code gepostet, der Code enthält kein .ClearContents
Gruß Hajo
AW: VBA code nur Inhalte löschen
15.10.2011 11:05:17
Stef
Ergänzung
Private Sub Workbook_Open()
For Each cl In Sheets("Pfullingen").Range("Ax5:AX29")
If cl < Date Then cl.Clear: cl.Offset(0, -1).ClearContents
Next cl
Problem bleibt !
Anzeige
AW: VBA code nur Inhalte löschen
15.10.2011 11:06:51
Stef
ups fehler entdeckt !
AW: VBA code nur Inhalte löschen
15.10.2011 11:09:15
Stef
Private Sub Workbook_Open()
For Each cl In Sheets("Tabelle1").Range("Ax5:AX29")
If cl < Date Then cl.ClearContents: cl.Offset(0, -1).ClearContents
Next cl
Wie war das nochmal mit Den Baum im Wald sehen :-)
Danke !
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Inhalte in Excel VBA löschen und Formatierungen beibehalten


Schritt-für-Schritt-Anleitung

Um in Excel VBA den Zelleninhalt zu löschen, ohne die Formatierungen zu beeinträchtigen, kannst du die Methode .ClearContents verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf „VBAProject (deine_datei.xlsx)“ klickst und „Einfügen“ > „Modul“ auswählst.

  3. Füge den folgenden Code in das Modul ein:

    Private Sub Workbook_Open()
       Dim cl As Range
       For Each cl In Sheets("Tabelle1").Range("A5:A29")
           If cl < Date Then cl.ClearContents
       Next cl
    End Sub
  4. Schließe den VBA-Editor und speichere deine Datei.

  5. Teste das Makro, indem du die Datei öffnest und überprüfst, ob die Zelleninhalte in dem angegebenen Bereich gelöscht wurden, während die Formatierungen erhalten bleiben.


Häufige Fehler und Lösungen

  • Problem: Die Formatierungen werden trotzdem gelöscht.

    • Lösung: Stelle sicher, dass du nur .ClearContents verwendest und nicht .Clear, da letzteres auch die Formatierungen entfernt.
  • Problem: Der VBA-Code funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob du den richtigen Bereich in Sheets("Tabelle1").Range("A5:A29") angegeben hast und ob das Arbeitsblatt korrekt benannt ist.

Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, um Zellen zu leeren, ohne die Formatierungen zu verlieren, kannst du Folgendes tun:

  1. Verwende die Methode .Value = "":

    For Each cl In Sheets("Tabelle1").Range("A5:A29")
       If cl < Date Then cl.Value = ""
    Next cl
  2. Du kannst auch eine Schleife verwenden, um die Zellen manuell zu leeren:

    Dim cl As Range
    For Each cl In Sheets("Tabelle1").Range("A5:A29")
       If cl < Date Then
           cl.Value = ""
       End If
    Next cl

Beide Methoden bewahren die Formatierungen der Zellen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du excel vba zelleninhalt löschen in verschiedenen Szenarien anwenden kannst:

  • Beispiel 1: Löschen von Zelleninhalt in einem bestimmten Bereich:

    Private Sub Workbook_Open()
       Sheets("Tabelle1").Range("B2:B10").ClearContents
    End Sub
  • Beispiel 2: Löschen von Zelleninhalt basierend auf einer Bedingung:

    Private Sub Workbook_Open()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("Tabelle1")
       For Each cl In ws.Range("C1:C20")
           If cl.Value = "Löschen" Then cl.ClearContents
       Next cl
    End Sub

Tipps für Profis

  • Verwende .ClearContents in Kombination mit Bedingungen, um gezielt Inhalte zu löschen.
  • Achte darauf, dass du keine Formatierungen oder bedingte Formatierungen hast, die beim Löschen des Inhalts stören könnten.
  • Nutze die Möglichkeit, den Bereich dynamisch zu erfassen, falls sich die Anzahl der zu bearbeitenden Zellen ändert.

FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer Zelle löschen, ohne die Formatierung zu verlieren? Verwende die Methode .ClearContents, um nur den Inhalt zu entfernen.

2. Was passiert, wenn ich .Clear anstelle von .ClearContents benutze? Die Methode .Clear entfernt sowohl den Inhalt als auch die Formatierungen der Zellen.

3. Kann ich mehrere Bereiche auf einmal leeren? Ja, du kannst mehrere Bereiche angeben, indem du sie in einer Union-Anweisung kombinierst oder in einer Schleife durchgehst.

4. Funktioniert dies auch in Excel 365? Ja, die beschriebenen Methoden funktionieren in allen aktuellen Excel-Versionen, einschließlich Excel 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige