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
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!
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
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
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
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.
ALT + F11
drückst.Einfügen
> Modul
klickst.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
GeloeschteSuchen
aus, um zu überprüfen, ob Zeilen gelöscht wurden.Fehler: Das Makro zeigt keine Meldung an, obwohl eine Zeile gelöscht wurde.
Fehler: Das Makro gibt falsche Ergebnisse zurück.
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.
Hier sind ein paar Beispiele, wie du die oben genannten Codes in der Praxis verwenden kannst:
Ü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.
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
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen