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

Forumthread: Code ausführen wenn Zeilen gelöscht wurden

Code ausführen wenn Zeilen gelöscht wurden
12.06.2007 17:32:00
Atikar
Hallo Leute,
kann ich wie bei
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
z.B. abfragen ob eine Zeile gelöscht wurde, wenn ja wie?
ciao
Atikar

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code ausführen wenn Zeilen gelöscht wurden
12.06.2007 18:38:09
Matthias
Hallo
Also das Abfragen ist so eine Trickysache.
Nummeriere mal die Spalte A von 1 bis 65536 durch
Dann lösche eine Zeile (egal welche)
Dieser Code sagt Dir das mind. eine Zeile gelöscht wurde

Sub GeloeschteSuchen()
Dim X
For X = 1 To 65536
If Cells(X, 1).Value  Cells(X, 1).Row Then MsgBox "Es wurde mind. eine Zeile gelöscht" &  _
vbLf & "erster Fund: Zeile " & X & " !": Exit Sub
Next
End Sub


Beim Löschen einer Zeile wird außerdem die letzte Zeile in Spalte A keinen (Value.Wert) mehr haben, da alle Zeilen um eins nach oben rutschen. Sprich beim löschen einer Zeile ist Zelle(A65536) leer!
Userbild
Wurden 2 Zeilen gelöscht sind am Ende der Spalte 2 Zellen leer! u.s.w. Das könnte man ebenfalls abfragen.
Ich hoffe das hilft Dir ein Stück weiter.
Gruß Matthias

Anzeige
AW: Code ausführen wenn Zeilen gelöscht wurden
12.06.2007 21:02:53
Daniel
Hi,
du kannst auf jeden Fall mit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Target.EntireRow.Address Then
MsgBox "Zeile wurde verändert"
End If
End Sub


prüfen, ob eine ganze Zeile manipuliert wurde.
ob aber gelöscht, eingefügt oder nur de Zellen geleert oder gefärbt wurden, kann man so nicht entscheiden.
das könntest du allderdings mit diesem Code prüfen:
es wird unterhalb der Tabelle ganz rechts ein Namen definiert und dessen Zeile gespeichert.
Wenn jetzt die Zeile des Namen kleiner wird als der gespeicherte Wert, wurde eine ganze Zeile gelöscht
(was dieser Code natürlich nicht findet, ist wenn nur teilweise Zellen gelöscht werden.


Option Explicit
Dim LetzteZeile As Long
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ze As Long
On Error GoTo Namen_einfügen
ze = Range("LeZe").Row
On Error GoTo 0
If ze 


Grußm Daniel

Anzeige
AW: Code ausführen wenn Zeilen gelöscht wurden
13.06.2007 10:23:00
Atikar
Hallo Daniel,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Target.EntireRow.Address Then
MsgBox "Zeile wurde verändert"
End If
End Sub


hat super funktioniert
danke
atikar

AW: Code ausführen wenn Zeilen gelöscht wurden
13.06.2007 23:19:00
Daniel
Freut mich, daß ich helfen konnte.
aber wie gesagt, diese Methode stellt nur fest, daß eine ganze Zeile verändert wurde.
Was mit der Zeile gemacht wurde, kann man daraus nicht ableiten, dh. das Macro würde genaus reagieren, wenn du die Spaltenbreite änderst oder die Zellfarbe.
gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

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

Code ausführen, wenn Zeilen gelöscht wurden


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu überprüfen, ob eine oder mehrere Zeilen gelöscht wurden, kannst du den folgenden Code verwenden. Er nummeriert die Zeilen in Spalte A und zeigt eine Nachricht an, wenn eine Zeile gelöscht wurde.

  1. Öffne dein Excel-Dokument und gehe zum Visual Basic for Applications (VBA) Editor, indem du ALT + F11 drückst.
  2. Füge ein neues Modul hinzu, indem du auf Einfügen > Modul klickst.
  3. Kopiere und füge den folgenden VBA-Code in das Modul ein:
Sub GeloeschteSuchen()
    Dim X As Long
    For X = 1 To 65536
        If Cells(X, 1).Value <> X Then
            MsgBox "Es wurde mind. eine Zeile gelöscht" & vbLf & "erster Fund: Zeile " & X & " !"
            Exit Sub
        End If
    Next
End Sub
  1. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.
  2. Führe das Makro GeloeschteSuchen aus, um zu überprüfen, ob Zeilen gelöscht wurden.

Häufige Fehler und Lösungen

  • Fehler: Das Makro zeigt keine Meldung an, obwohl eine Zeile gelöscht wurde.

    • Lösung: Stelle sicher, dass die Spalte A richtig nummeriert ist, bevor du Zeilen löschst. Wenn die Nummerierung fehlt, funktioniert der Vergleich nicht.
  • Fehler: Das Makro gibt falsche Ergebnisse zurück.

    • Lösung: Überprüfe, ob du die gesamte Zeilenmanipulation korrekt erfasst hast und dass keine anderen Makros dies beeinflussen.

Alternative Methoden

Wenn du eine andere Methode verwenden möchtest, um Änderungen in Zeilen zu überwachen, kannst du den folgenden Code nutzen. Dieser überprüft, ob eine Zeile verändert wurde:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Target.EntireRow.Address Then
        MsgBox "Zeile wurde verändert"
    End If
End Sub

Dieser Code zeigt eine Meldung an, wenn eine ganze Zeile bearbeitet wird. Beachte jedoch, dass dieser Code nicht zwischen Löschen, Einfügen oder Bearbeiten von Zellen unterscheidet.


Praktische Beispiele

Hier sind ein paar Beispiele, wie du die oben genannten Codes in der Praxis verwenden kannst:

  1. Überwachung einer spezifischen Tabelle: Wenn du eine Tabelle mit Daten hast, kannst du den Code in das Arbeitsblattmodul der Tabelle einfügen, um immer informiert zu sein, wenn eine Zeile gelöscht wird.

  2. Kombinieren von Codes: Du kannst auch beide Codes kombinieren, um sowohl Zeilenänderungen als auch gelöschte Zeilen zu überwachen. Dies könnte so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Target.EntireRow.Address Then
        MsgBox "Zeile wurde verändert"
    End If
    Call GeloeschteSuchen
End Sub

Tipps für Profis

  • Daten sichern: Bevor du mit VBA arbeitest, erstelle immer eine Sicherungskopie deiner Excel-Datei.
  • Testumgebung: Teste deine Makros in einer separaten Datei, um unerwartete Änderungen in deiner Hauptdatei zu vermeiden.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um Probleme während der Ausführung deines Codes zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um mehrere Zeilen zu überwachen? Ja, du kannst den Code so anpassen, dass er mehrere Zeilen überwacht, indem du den Bereich in der Schleife erweiterst.

2. Funktioniert dieser Code in Excel 2016? Ja, der Code sollte in Excel 2016 sowie in anderen Versionen von Excel funktionieren, die VBA unterstützen.

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