Selection_Change Target Objekt nicht verfügbar
14.02.2019 11:28:58
Andre
Ich habe ein bei einem Worksheet Selection_Change Event ein Verhalten, das ich mir nicht erklären kann.
Auf einem Worksheet habe ich 2 übereinander liegende Tabellen. Die untere Tabelle wird mittels WebAbfrage befüllt. Die obere Tabelle möchte ich via VBA bearbeiten.
In der unteren Tabellen füge ich mittels VBA eine Checkboxspalte ein. Diese Spalte beinhaltet keine Steuerelement Checkbox, sondern ein Checkboxsymbol via Windings Schrift. Über das Event Selection_Change ändere ich bei Select von unchecked zu checked, oder checked zu unchecked.
Auszug aus der Tabellen Klasse
Option Explicit
Private WithEvents tableWorksheet As Worksheet
Private pTable As ListObject
Dim cb_colName As String
Private Sub tableWorksheet_SelectionChange(ByVal Target As Range)
Call Me.addCheckboxColumn
Call Me.handleCheckboxColumn(Target)
End Sub
Das funktioniert auch sehr gut.
Wenn ich allerdings aus der oberen Tabelle per VBA eine Zeile lösche,
Private Sub handleDeleteButton(Target As Range)
If Target.Columns.Count = 1 And Target.Rows.Count = 1 Then
Dim isect As Range
'get selected cells of delete column
Set isect = Application.Intersect(Target, pTable.ListColumns(delete_colName). _
DataBodyRange)
If Not isect Is Nothing Then
If MsgBox("Delete Row?", vbYesNo + vbQuestion, "Delete ToDo") = vbYes Then
tableWorksheet.Rows(isect.row).Delete
End If
End If
End If
End Sub
dann tritt in der Prozedur handleCheckboxColumn(Target) ein Fehler auf.
Das Objekt Target sei kein Objekt: "Laufzeitfehler 424: Objekt erforderlich"
Prüfe ich mit isObject(Target), dann wird wahr ausgegeben. Möchte ich auf Werte von Target zugreifen, tritt der Fehler auf.
Das kuriose ist, dass alles funktioniert, wenn ich händisch eine Zeile lösche. Ich habe das Löschen auch schon als Makro aufgezeichnet und den Code inklusive Select Range getestet, führt aber zum selben Phänomen.
Bin gerade etwas ratlos, was hier passiert.
Vll. kann ja jemand helfen
VG
Andre