Existiert ein "Delete Line" Event ?

13/05/2009 - 16:06 von Hervé RICHARD | Report spam
Hallo NGs,

es kann sein dass meine Users über das Kontextmenü eine Zeile löschen (bezw.
hinzufügen) und dass müßte ich abfangen um auf ein anderes Worksheet
Anpassungen durchzuführen.

Gibt es ein Event dafür ? Wie handelt man dies ?
Was ist wenn der User par Strg+Klick mehrere Zeile ausgewàhlt ?

Danke für jeglicher hilfreicher Hinweis.
 

Lesen sie die antworten

#1 stefan onken
13/05/2009 - 17:05 | Warnen spam
On 13 Mai, 16:06, Hervé RICHARD
wrote:
Hallo NGs,

es kann sein dass meine Users über das Kontextmenü eine Zeile löschen (bezw.
hinzufügen) und dass müßte ich abfangen um auf ein anderes Worksheet
Anpassungen durchzuführen.

Gibt es ein Event dafür ? Wie handelt man dies ?
Was ist wenn der User par Strg+Klick mehrere Zeile ausgewàhlt ?

Danke für jeglicher hilfreicher Hinweis.



hallo Hervé,
so ein Ereignis gibt es nicht.

Du kannst in eine (versteckte) Zelle einen eindeutigen Text schreiben.
Das Einfügen/löschen von Zeilen löst das Change-Ereignis der Tabelle
aus, in diesem Ereignis kannst du nach der Zelle mit dem Text suchen
(mittels Cells.Find) und die Zeile mit einem gespeicherten Wert
vegleichen.

Codebsp (alles in DieseArbeitsmappe)

Dim zeile
Private Sub Workbook_Open()
zeile = ActiveSheet.Cells.Find("xyz").Row
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If ActiveSheet.Cells.Find("xxx").Row <> zeile Then
MsgBox "Zeilen geàndert"
End If
zeile = ActiveSheet.Cells.Find("xyz").Row

End Sub

Problem ist hierbei aber das löschen der Zelle mit dem zu suchenden
Text.

Andere Option: das Kontextmenü auf einen eigenen Code umleiten.

Sub Umleiten()
Application.CommandBars("Row"). _
Controls("Zellen einfügen").OnAction = "Makro1"
End Sub

Sub Makro1()
MsgBox "zellen einfügen"
End Sub

Man muss dann aber das einfügen/löschen der Zellen im Makro nachbauen.
Die Umleitung muss (bleibt sonst auch nach schließen der Datei
erhalten) dann zB beim schließen der Datei beendet werden mit

Sub UmleitenAus()
Application.CommandBars("Row"). _
Controls("Zellen einfügen").OnAction = ""
End Sub


Gruß
stefan

Ähnliche fragen