Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige