Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1628to1632
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 424

Laufzeitfehler 424
12.06.2018 15:49:23
G
Hallo Leute,
ich habe folgendes Problem. Ich habe eine Tabelle, aus der Daten in ein anderes Tabellenblatt verschoben werden sollen, je nachdem, welche Auswahl man im ersten Tabellenblatt am Anfang einer Zeile trifft. Das Ganze funktioniert auch so, wie ich es mir wünsche, die Daten werden korrekt in das jeweilige Tabellenblatt verschoben, sowohl bei "geprüft" als auch bei "storniert". Allerdings bekomme ich einen Laufzeitfehler 424 (Objekt erforderlich), wenn ich eine Zeile auf "geprüft" setze. Wähle ich "storniert", kommt keine Fehlermeldung. Was kann ich tun, damit die Meldung verschwindet?
Bei Debuggen marktiert er die Zeile: If Target = "Storniert" Then

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Set Target = Intersect(Target, Range("A1:A1000"))
If Target Is Nothing Then Exit Sub
If Target = "Geprüft" Then
Zeile = Target.Row
Range(Cells(Zeile, 2), Cells(Zeile, 10)).Copy _
Destination:=Sheets("Geprüft").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
End If
If Target = "Storniert" Then
Zeile = Target.Row
Range(Cells(Zeile, 2), Cells(Zeile, 10)).Copy _
Destination:=Sheets("Storniert").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
End If
End Sub

Danke für eure Hilfe!

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 424
12.06.2018 16:32:03
PeterK
Hallo
Du hast ja alles gelöscht und damit führt die zweite Prüfung zum Fehler! (If..Then..Else verwenden)
probier mal...
12.06.2018 16:34:48
robert

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Set Target = Intersect(Target, Range("A1:A1000"))
If Target Is Nothing Then Exit Sub
If Target = "Geprüft" Then
Zeile = Target.Row
Range(Cells(Zeile, 2), Cells(Zeile, 10)).Copy _
Destination:=Sheets("Geprüft").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
Else
If Target = "Storniert" Then
Zeile = Target.Row
Range(Cells(Zeile, 2), Cells(Zeile, 10)).Copy _
Destination:=Sheets("Storniert").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
End If
End If
End Sub

Anzeige
AW: probier mal...
12.06.2018 17:54:55
G
funktioniert, vielen vielen Dank!!!
AW: probier mal...
12.06.2018 20:00:54
Luschi
Hallo G,
da bei 'Geprüft' und 'Storniert' genau das gleiche passiert, solte man Code-Verdoppelungen _ vermeiden:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Set Target = Intersect(Target, Range("A1:A1000"))
If Target Is Nothing Then Exit Sub
If InStr(1, "*Geprüft*Storniert*", Target.Value, vbTextCompare) > 0 Then
Zeile = Target.Row
Range(Cells(Zeile, 2), Cells(Zeile, 10)).Copy _
Destination:=Sheets("Geprüft").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige