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

VBA Daten im bestimmten Bereich löschen

Forumthread: VBA Daten im bestimmten Bereich löschen

VBA Daten im bestimmten Bereich löschen
25.02.2017 12:21:02
Mike

Hallo,
ich möchte im Bereich (B19:E66) alle Daten löschen.
Als Variable zum auslesen welche letzte Zelle noch mit Daten beschrieben ist, wollte ich diese nutzen : letztezeiletag = Cells(Rows.Count, 2).End(xlUp).Row
Den Bereich habe ich als Range deklariert.
Wie kann ich das auslesen der letzten beschriebenen Zelle auf diesen Bereich beschränken, ausserhalb dieses Bereiches sind Daten die nicht gelöscht werden sollen.
Gruß und Danke Mike.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten im bestimmten Bereich löschen
25.02.2017 12:26:38
Crazy Tom
Hallo
na vielleicht so?
letztezeiletag = cells(66,2).end(xlup).row
MfG Tom
AW: VBA Daten im bestimmten Bereich löschen
25.02.2017 12:27:54
MatthiasG
Hallo Mike,
wenn rng0 dein mit Hilfe von End(xlUp).Row ermittelter Bereich ist, kannst du mit

Intersect(rng0, Range("B19:E66")).ClearContents

die Schnittmenge der beiden Bereiche löschen.
Gruß Matthias
Anzeige
Reicht denn nicht einfach …
25.02.2017 13:08:56
RPP63
Range("B19:E66").ClearContents
?
Wozu brauchst Du die letzte gefüllte Zeile?
Fragt sich Ralf
AW: Reicht denn nicht einfach …
25.02.2017 13:26:14
Mike
Hallo
das geht natürlich auch, aber wie kann ich den Bereich dynamisch anpassen wenn ich eine Zeile einfüge bzw. lösche
Hier handelt sich um eine Angebotsformular und es kommt vor das der angebene Bereich zu klein für alle Artikel ist.
Wenn ich eine Zeile einfüge sollte sich der Bereich automatisch erweiten oder verkleinern wenn ich eine Zeile lösche.
Danke für die Vorschläge
Gruß mike
Anzeige
AW: Reicht denn nicht einfach …
25.02.2017 13:31:19
MatthiasG
Hallo Mike,
gib deinem Bereich einen Namen, dann kannst du ihn so in VBA ansprechen ( Range("Bereichsname") ) und er verändert sich automatisch bei Einfügen und Löschen von Zeilen.
Gruß Matthias
AW: Reicht denn nicht einfach …
25.02.2017 13:46:39
Mike
Hi,
danke, manchmal kann es so einfach sein.
Gruß Mike

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten im bestimmten Bereich mit VBA löschen


Schritt-für-Schritt-Anleitung

Um Daten in einem bestimmten Bereich mit Excel VBA zu löschen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (dein Dokument)", wähle "Einfügen" und dann "Modul".

  3. Code zum Löschen der Inhalte eingeben: Verwende den folgenden Code, um die Inhalte im Bereich B19:E66 zu löschen.

    Sub BereichLoeschen()
       Dim rng0 As Range
       Dim letztezeiletag As Long
    
       letztezeiletag = Cells(Rows.Count, 2).End(xlUp).Row
       Set rng0 = Range("B19:E" & letztezeiletag)
    
       Intersect(rng0, Range("B19:E66")).ClearContents
    End Sub
  4. Führe das Makro aus: Drücke F5 oder gehe zu "Ausführen" > "Sub/UserForm ausführen", um das Makro zu starten.


Häufige Fehler und Lösungen

  • Fehler bei der Bereichsdefinition: Stelle sicher, dass der definierte Bereich korrekt ist. Verwende Range("B19:E66"), um sicherzustellen, dass du den gewünschten Bereich löschst.
  • Makro funktioniert nicht: Überprüfe, ob das Makro aktiviert ist und ob du die richtigen Berechtigungen hast, um VBA-Code auszuführen.
  • Daten werden nicht gelöscht: Achte darauf, dass der Bereich, den du mit Intersect definierst, tatsächlich Daten enthält.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, Daten in Excel VBA zu löschen:

  1. Direktes Löschen: Statt Intersect kannst du einfach den Befehl Range("B19:E66").ClearContents verwenden, um den gesamten Bereich zu leeren.

    Sub DirektLoeschen()
       Range("B19:E66").ClearContents
    End Sub
  2. Dynamische Bereiche: Um den Bereich dynamisch anzupassen, kannst du benannte Bereiche verwenden, die sich bei Einfügen oder Löschen von Zeilen automatisch anpassen.


Praktische Beispiele

Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst, um unterschiedliche Anforderungen zu erfüllen:

  • Löschen eines benannten Bereichs:

    Sub BenannterBereichLoeschen()
       Range("MeinBereich").ClearContents
    End Sub
  • Daten in einem bestimmten Bereich löschen, ohne Select zu verwenden:

    Sub BereichLoeschenOhneSelect()
       Range("B19:E66").ClearContents
    End Sub

Tipps für Profis

  • Verwende Range.Clear: Um alle Inhalte und Formatierungen zu löschen, kannst du Range("B19:E66").Clear verwenden.
  • Überprüfe Bedingungen: Nutze Bedingungen, um nur die Zellen zu löschen, die bestimmte Kriterien erfüllen.
  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben robust bleibt.

FAQ: Häufige Fragen

1. Wie kann ich einen Bereich in VBA dynamisch anpassen?
Du kannst einen benannten Bereich verwenden, der sich automatisch anpasst, wenn Zeilen hinzugefügt oder entfernt werden.

2. Was passiert, wenn ich ClearContents verwende?
ClearContents löscht nur die Inhalte der Zellen, nicht jedoch deren Formatierungen oder Kommentare.

3. Kann ich mehrere Bereiche gleichzeitig löschen?
Ja, du kannst mehrere Bereiche in einem einzigen Befehl löschen, indem du sie mit einem Komma trennst, z.B. Range("B19:E66, G19:J66").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