Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler nach Zeile gelöscht

Forumthread: Laufzeitfehler nach Zeile gelöscht

Laufzeitfehler nach Zeile gelöscht
24.08.2018 08:44:02
Olaf
Hallo,
ich habe in einer Tabelle automatisch sortieren nach Spalte D eingestellt. Danach springt er automatisch in das oberste Feld des gerade eingegegben Wertes in D (Auswahlfeld mit 3 Möglichkeiten).
Das Problem ist, wenn ich eine komplette Zeile lösche, dann kommt er mit einem Laufzeitfehler. _
Was kann ich einbauen, damit dieser nicht kommt?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim varTargetValue As Variant
If Not Application.Intersect(Target, Range("D2:D200")) Is Nothing Then
varTargetValue = Target
Range("A2:G200").Sort Key1:=Range("D2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
Key2:=Range("A2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Cells(Application.Match(varTargetValue, Columns(4), 0), 4).Select
End If
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler nach Zeile gelöscht
24.08.2018 08:53:23
Nepumuk
Hallo Olaf,
teste mal:
If Not IsArray(varTargetValue) Then _
    Cells(Application.Match(varTargetValue, Columns(4), 0), 4).Select

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler nach Zeile gelöscht
24.08.2018 09:59:11
Olaf
Danke Nepumuk, das hat wunderbar funktioniert
AW: Laufzeitfehler nach Zeile gelöscht
24.08.2018 08:53:56
hary
Moin Olaf
Dann lass den Code nicht ausfuehren wenn mehr als eine Zelle ausgewaehlt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim varTargetValue As Variant
If Target.Count > 1 Then Exit Sub '--wenn mehr als eine Zelle ausgewaehlt dann beenden
If Not Application.Intersect(Target, Range("D2:D200")) Is Nothing Then
'--weiterer Code

gruss hary
Anzeige
AW: Laufzeitfehler nach Zeile gelöscht
24.08.2018 08:55:06
EtoPHG
Hallo Olaf,
Prüfen ob das Target ein Array war!
        If Not IsArray(varTargetValue) Then
Cells(Application.Match(varTargetValue, Columns(4), 0), 4).Select
End If
Gruess Hansueli
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige