Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen löschen überwachen

Zeilen löschen überwachen
02.09.2008 13:00:00
Tom
Hallo
gibt es eigentlich eine Möglichkeit das löschen einer ganzen Zeile zu überwachen?
Man könnte ja ganz normal eine Zeile auswählen und diese komplett löschen. Nicht den Inhalt an sich, sondern die ganze Zeile. Die darunter rückt dann ja nach.
Jetzt würde ich dieses Ereignis gern überwachen und wenn es vorkommt eine Aktion ausführen...Gibt es das so in Excel?
Gruß
Der Tom

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen überwachen
02.09.2008 14:39:42
fcs
Hallo Tom,
man kann so etwas machen.
Voraussetzung ist, dass eine Spalte vorhanden ist, in der keine leeren Zellen in der Liste vorkommen.
Nachfolgend ein Code-Beispiel, dass im VBA-Editor unter der Tabelle eingefügt werden muss, die überwacht werden soll. Die Nummer der Spalte zur Überwachung der Zeilenzahl muss du ggf. anpassen.
Die Zeilen mit den MsgBox kannst du löschen. Sie dienen hier nur zur Demonstration.
Gruß
Franz

Private lngZeilenAlt As Long
Private lngAnzahlZeilen As Long
Private Const lngSpalte As Long = 1 'Spalte zur Prüfung der Anzahl Zeilen
Private Sub Worksheet_Change(ByVal Target As Range)
'Application.EnableEvents = False
lngAnzahlZeilen = Me.Cells(Me.Rows.Count, lngSpalte).End(xlUp).Row
If lngAnzahlZeilen  lngZeilenAlt Then
MsgBox lngAnzahlZeilen - lngZeilenAlt & " Zeile(n) wurde(n) eingefügt"
lngZeilenAlt = lngAnzahlZeilen
Else
MsgBox "Keine Zeile(n) wurde(n) gelöscht oder eingefügt"
End If
'Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If lngZeilenAlt = 0 Then lngZeilenAlt = Me.Cells(Me.Rows.Count, 1).End(xlUp).Row
If lngAnzahlZeilen = 0 Then lngAnzahlZeilen = Me.Cells(Me.Rows.Count, 1).End(xlUp).Row
End Sub


Anzeige
AW: Zeilen löschen überwachen
02.09.2008 15:59:00
Tom
Also wenn ich eine Spalte habe, in der es auch zwischendurch die eine oder andere Zelle gibt die leer ist, dann würde es nicht funktionieren?
Der Tom
AW: Zeilen löschen überwachen
02.09.2008 16:49:00
fcs
Hallo Tom,
dann kann es Probleme geben weil versehentlich eine Zeile als gelöscht ermittelt werden kann, wenn in der Prüfspalte.
Du könntest aber, falls das keine Probleme verursacht, unterhalb deiner Daten in der Prüf-Spalte in eine Zelle Leerzeichen eingeben oder die Formel ="".
Die nachfolgende Variante ist etwas rechenintensiver. Es es kann nur in wenigen Fällen (Die letzte Datenzeile oder deren Inhalt wird gelöscht und es sind komplett leere Zeilen vor dieser Zeile) passieren, dass gelöschte bzw. mehr als eine gelöschte Zeile angezeigt werden.
Gruß
Franz

Option Explicit
Private lngZeilenAlt As Long
Private lngAnzahlZeilen As Long
Private Const lngSpalte As Long = 1 'Spalte zur Prüfung der Anzahl Zeilen
Private Sub Worksheet_Change(ByVal Target As Range)
'Application.EnableEvents = False
lngAnzahlZeilen = LastRow(Me)
If lngAnzahlZeilen  lngZeilenAlt Then
MsgBox lngAnzahlZeilen - lngZeilenAlt & " Zeile(n) wurde(n) eingefügt"
lngZeilenAlt = lngAnzahlZeilen
Else
MsgBox "Keine Zeile(n) wurde(n) gelöscht oder eingefügt"
End If
'Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If lngZeilenAlt = 0 Then lngZeilenAlt = LastRow(Me)
If lngAnzahlZeilen = 0 Then lngAnzahlZeilen = LastRow(Me)
End Sub
Private Function LastRow(wks As Worksheet) As Long
'Letzte Zeile im Blatt mit Daten ermitteln
Dim Spalte As Long
For Spalte = 1 To wks.UsedRange.Column + wks.UsedRange.Columns.Count - 1
If LastRow 


Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige