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

Linie mit VBA-Makro löschen

Forumthread: Linie mit VBA-Makro löschen

Linie mit VBA-Makro löschen
09.01.2004 12:32:03
Heiko Reichle
Hallo!
Wie kann ich alle "Linien" (Zeichnungsobjekte) aus einem Tabellenblatt löschen?
Bisheriger Code:

Sub Linien_loeschen()
anzahl = ActiveSheet.Shapes.Count
i = 0
Do
i = i + 1
art = ActiveSheet.Shapes.Item(i).Type
If art = 9 Then             '9 = Linie
ActiveSheet.Shapes.Item(i).Select
Selection.Delete
End If
Loop Until (i = anzahl)
End Sub

Das Makro löscht tatsächlich einige Linien. Dann hält es mit einer Fehlermeldung an - Laufzeitfehler...
Wer kann mir dabei helfen?
Für Anregungen sage ich jetzt schon D A N K E !
Heiko Reichle
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Linie mit VBA-Makro löschen
09.01.2004 12:34:44
K.Rola
Hallo,
machs besser mit einer For each- Schleife.
Gruß K.Rola
AW: Linie mit VBA-Makro löschen
09.01.2004 12:36:12
Heiko Reichle
Hallo K. Rola!
Das Makro bricht irgendwo in der Mitte ab.
Warum könnte es daran liegen?
Heiko
AW: Linie mit VBA-Makro löschen
09.01.2004 12:39:39
Heiko Reichle
Mit For .. Each kenn ich mich nicht so gut aus -> "... in 'Auflistung'" etc.
Heiko.
Anzeige
AW: Linie mit VBA-Makro löschen
09.01.2004 12:42:52
k.Rola
Hallo,
so sollte es gehen:
Option Explicit

Sub Linien_loeschen()
Dim Shl As Object
For Each Shl In ActiveSheet.Shapes
If Shl.Type = 9 Then
Shl.Delete
End If
Next
End Sub

Gruß K.Rola
AW: Linie mit VBA-Makro löschen
09.01.2004 12:56:39
Heiko Reichle
W O W !!!!!!!!!!
Funktioniert SUPER!
DANKE!
Heiko
Anzeige
;
Anzeige

Infobox / Tutorial

Linien mit VBA-Makro in Excel löschen


Schritt-für-Schritt-Anleitung

Um alle Linien (Zeichnungsobjekte) aus einem Excel-Arbeitsblatt zu löschen, kannst du ein VBA-Makro verwenden. Die folgende Schritt-für-Schritt-Anleitung zeigt dir, wie du dies umsetzen kannst:

  1. Öffne Excel und lade das Arbeitsblatt, aus dem du die Linien löschen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden VBA-Code in das Modul ein:

    Sub Linien_loeschen()
       Dim Shl As Object
       For Each Shl In ActiveSheet.Shapes
           If Shl.Type = 9 Then
               Shl.Delete
           End If
       Next
    End Sub
  5. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.

  6. Drücke ALT + F8, wähle Linien_loeschen aus der Liste und klicke auf Ausführen.

Mit diesem Makro werden alle Linien im aktiven Arbeitsblatt gelöscht. Diese Methode ist effizienter und vermeidet Laufzeitfehler, die bei der vorherigen Methode auftreten können.


Häufige Fehler und Lösungen

  • Laufzeitfehler beim Löschen: Wenn du das alte Makro mit einer Do-Schleife verwendest, kann es zu Laufzeitfehlern kommen, weil der Zähler i über die Anzahl der Formen hinausgeht. Verwende stattdessen die For Each-Schleife, um diese Probleme zu vermeiden.

  • Makro funktioniert nicht: Stelle sicher, dass du das Makro im richtigen Arbeitsblatt ausführst und dass das VBA-Makro aktiviert ist. Überprüfe die Sicherheitseinstellungen in Excel.


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch manuell vorgehen:

  1. Manuelles Löschen: Wähle die Linien aus, indem du sie mit der Maus markierst, und drücke Entf.
  2. Schnellzugriff: Du kannst auch die STRG-Taste gedrückt halten, während du die Linien anklickst, um mehrere Linien gleichzeitig auszuwählen und zu löschen.

Diese Methoden sind jedoch weniger effizient, wenn du viele Linien auf einmal löschen möchtest.


Praktische Beispiele

Hier ist ein weiteres Beispiel, wie du das Makro anpassen kannst, um nur bestimmte Linien zu löschen:

Sub Bestimmte_Linien_loeschen()
    Dim Shl As Object
    For Each Shl In ActiveSheet.Shapes
        If Shl.Type = 9 And Shl.Name Like "Linie*" Then
            Shl.Delete
        End If
    Next
End Sub

In diesem Beispiel werden nur Linien gelöscht, deren Namen mit "Linie" beginnen. Du kannst die Bedingung anpassen, um spezifischere Linien zu löschen.


Tipps für Profis

  • Option Explicit: Füge Option Explicit am Anfang deines Moduls hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Backup erstellen: Bevor du ein Makro ausführst, erstelle immer eine Sicherungskopie deiner Datei, um Datenverluste zu verhindern.
  • Makros testen: Teste dein Makro zuerst in einer Testdatei, um sicherzugehen, dass es wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Frage
Warum funktioniert mein Makro nicht?
Antwort: Überprüfe, ob das Makro in der richtigen Arbeitsmappe ausgeführt wird und dass du die korrekten Berechtigungen in den Excel-Einstellungen gesetzt hast.

2. Frage
Kann ich das Makro anpassen?
Antwort: Ja, du kannst den Code anpassen, um spezifische Linien oder andere Zeichnungsobjekte zu löschen. Achte darauf, die Bedingungen im If-Statement entsprechend zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige