Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Inhalt eines Bereichs löschen mit VBA

Inhalt eines Bereichs löschen mit VBA
07.02.2008 18:15:00
Mister
Guten Abend,
wie kann man per VBA die Zellenwerte eine Bereichs (Tabelle "Statistik" A1:Z50) per VBA löschen. Die Formeln in dem Bereich sollen nicht gelöscht werden.
Gruß
Martin

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt eines Bereichs löschen mit VBA
07.02.2008 18:26:54
Reinhard
Hi Martin,
das geht nicht. Wenn nur dadurch daß die zellen die in der Formel berchnet werden, z.B. =summe() gelöscht werden und du die Nullanzeige unterdrückst, aber so ganz verstehe ich nicht was du planst.
Erzähl mal mehr was du da willst.
Gruß
Reinhard

AW: Inhalt eines Bereichs löschen mit VBA
07.02.2008 18:32:26
Mister
Hallo,
Ich habe eine Tabelle erstellt, eine Art Statistik. Jeden Tag wird die Statistik per Makro automatisch eingetragen. Formeln in der Tabelle bearbeiten die Einträge. Am letzten Tag des Monats wird die gefüllte Tabelle per VBA gespeichert.
Ich mochte gleichzeitig die Einträge in dieser Tabelle löschen aber nicht die Formeln, sodass die Tabelle am ersten des nächsten Monats wieder jungfräulich ist.
Gruß
Martin

Anzeige
AW: mal sehen ob ich Dich verstanden habe
07.02.2008 19:41:00
Mister
Hallo,
so umgebaut:

Sub KeineFormel()
Dim C As Variant
For Each C In Range("A1:C16")
C.Select
If C.HasFormula = False Then ActiveCell.ClearContents
Next
End Sub


klappt's super. Vielen dank
Gruß
Martin

Anzeige
... das geht auch ohne Select !
07.02.2008 19:49:00
Matthias
Hallo
Das Select hatte ich nur zur Demontration drin. ;o)

Sub ohneselect()
Dim C As Variant
For Each C In Range("A1:C16")
If C.HasFormula = False Then C.ClearContents
Next
End Sub


Userbild

Anzeige
AW: ... das geht auch ohne Select !
07.02.2008 19:55:58
Original
Hi,
das geht auch ohne Schleife!
mfg Kurt

AW: ... das geht auch ohne Select !
07.02.2008 22:08:00
Matthias
Hallo Kurt
wie geht so etwas denn ohne Schleife? Kannst Du ein Beispiel posten?
Gruß Matthias

AW: ... das geht auch ohne Select !
07.02.2008 23:05:34
Original
Hi,
aus dem Archiv von K.Rola:

Sub ohne_Schleife()
On Error Resume Next
[A1:C16].SpecialCells(2, 23).ClearContents
If Err  0 Then MsgBox "Keine Konstanten vorhanden!           ", 64, "Weise hin..."
End Sub


mfg Kurt

Anzeige
genial , danke ;o) oT
08.02.2008 08:24:00
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Inhalte eines Bereichs mit VBA löschen


Schritt-für-Schritt-Anleitung

Um den Inhalt eines bestimmten Bereichs in Excel mit VBA zu löschen, ohne die Formeln zu beeinträchtigen, kannst du folgende Schritte durchführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ und wähle „Einfügen“ > „Modul“.
  3. Kopiere den Code:

    • Verwende den folgenden Code, um den Inhalt im Bereich „A1:C16“ zu löschen, während die Formeln erhalten bleiben:
    Sub KeineFormel()
       Dim C As Range
       For Each C In Range("A1:C16")
           If Not C.HasFormula Then C.ClearContents
       Next C
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle dein Makro aus und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: „Kein Objekt gefunden“
    Lösung: Stelle sicher, dass der angegebene Bereich (z.B. „A1:C16“) existiert und korrekt geschrieben ist.

  • Fehler: „Methoden oder Eigenschaften nicht gefunden“
    Lösung: Überprüfe, ob du den richtigen Code ohne Syntaxfehler kopiert hast.

  • Formeln werden gelöscht
    Lösung: Vergewissere dich, dass du If Not C.HasFormula Then korrekt implementiert hast, um Formeln zu schützen.


Alternative Methoden

Es gibt verschiedene Ansätze, um Inhalte in Excel mit VBA zu löschen:

  1. Ohne Schleife: Du kannst den Inhalt eines Bereichs auch ohne Schleife löschen, indem du SpecialCells verwendest:

    Sub ohne_Schleife()
       On Error Resume Next
       [A1:C16].SpecialCells(xlCellTypeConstants).ClearContents
       If Err <> 0 Then MsgBox "Keine Konstanten vorhanden!", 64, "Hinweis"
    End Sub
  2. Bereich ohne Select löschen: Um den Bereich ohne Verwendung von Select zu löschen, kannst du folgenden Code nutzen:

    Sub ohneselect()
       Dim C As Range
       For Each C In Range("A1:C16")
           If Not C.HasFormula Then C.ClearContents
       Next C
    End Sub

Praktische Beispiele

  • Beispiel 1: Löschen von Inhalten in einer bestimmten Tabelle:

    Sub Bereich_löschen()
      Sheets("Statistik").Range("A1:Z50").ClearContents
    End Sub
  • Beispiel 2: Formeln beibehalten und nur Werte löschen:

    Sub Werte_löschen()
      Dim Bereich As Range
      Set Bereich = Sheets("Statistik").Range("A1:Z50")
      For Each Zelle In Bereich
          If Not Zelle.HasFormula Then Zelle.ClearContents
      Next Zelle
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next: Dies hilft dir, Fehler zu ignorieren, die auftreten könnten, wenn der angegebene Bereich keine Zellen enthält.

  • Optimiere deinen Code: Wenn du häufig mit großen Datenmengen arbeitest, vermeide Schleifen und nutze Methoden wie SpecialCells, um die Leistung zu verbessern.

  • Teste in einer Kopie: Bevor du Makros auf wichtige Daten anwendest, teste sie immer in einer Sicherheitskopie deiner Datei.


FAQ: Häufige Fragen

1. Wie kann ich einen gesamten Bereich löschen?
Du kannst den gesamten Bereich mit Range("A1:Z50").ClearContents löschen. Dies entfernt jedoch auch Formeln.

2. Was passiert, wenn ich ActiveCell.ClearContents benutze?
ActiveCell.ClearContents löscht nur den Inhalt der aktuell ausgewählten Zelle. Verwende stattdessen eine Schleife, um mehrere Zellen zu ändern.

3. Kann ich VBA nutzen, um nur bestimmte Zelltypen zu löschen?
Ja, du kannst SpecialCells verwenden, um nur bestimmte Zelltypen wie Konstanten oder Formeln zu löschen.

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