Hallo Holger,
verzeih bitte die schlechte Formatierung in meinem Post, bin da etwas durcheinander gekommen, hast es aber richtig erkannt.
Ich habe jetzt den Code entsprechend geändert in:
If Target.Column = 10 And Target.Value = "Erledigt" Then
Range(Worksheets("Offen").Cells(Target.Row, 1), Worksheets(1).Cells(Target.Row, 14)).Cut
Worksheets("Erledigt").Activate
lz = Worksheets("Erledigt").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Erledigt").Cells(lz, 1).Activate
ActiveSheet.Paste
Worksheets("Offen").Cells(Reihe, 1).EntireRow.Delete
End If
Vielen Dank dafür :-)
Ich bekomme aber weiterhin die Fehlermeldung: Typen unverträglich.
Er stoppt immer bei: If Target.Column = 10 And Target.Value = "Erledigt" Then.
Hat das vielleicht etwas mit der Formatierung zu tun?
Was ich verschwiegen habe ist, das das Target eine Auswahlliste ist. Kann es vielleicht daran liegen ?
Gruß
Homer
Holger schrieb am 27.02.2009 10:12:01:
Hallo Homer80,
ich gehe davon aus, dass die "_" Verbindungszeichen für Zeilen sind, aber die Zeilenwechsel nicht eingefügt wurden, und dass OldRow... ein Punkt vorangestellt werden sollte und in die Zeile davor gehört.
Allerdings kenne ich keine Eigenschaft "OldRow". Du willst aber vermutlich den Bereich
Worksheets(1).Cells(Target.Row, 1), Worksheets(1).Cells(Target.Row, 14)
ausschneiden. Dazu brauchst du ihn nicht zu markieren.
Range(Worksheets(1).Cells(Target.Row, 1), Worksheets(1).Cells(Target.Row, 14)).Cut
genügt.
Um auf dem Tabellenblatt "Erledigt" die nächste freie Zeile zu finden, kannst du z.B.
Worksheets("Erledigt").Activate
lz = Cells(Rows.Count, 1).End(xlUp).Row+1
verwenden.
Gruß
Holger
Homer80 schrieb am 26.02.2009 14:24:11:
Hallo,
ich habe folgenden Code (als Anfänger) geschrieben:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 10 And Target.Value = "Erledigt" Then
Range(Worksheets(1).Cells(Target.Row, 1), _ Worksheets(1).Cells(Target.Row, 14))
OldRow.Select
Selection.Cut
Dim Workshet As Range: Set Workshet = _ Worksheets("Erledigt").Range("A3", "A20000")
Dim Cell As Range
Dim counter As Integer: counter = 3
Dim NewPlace As Range
For Each Cell In Workshet
If Cell.Value = "" Then
Worksheets("Erledigt").Activate
Worksheets("Erledigt").Cells(counter, 1).Select
Exit For
End If
counter = counter + 1
Next
ActiveSheet.Paste
End If
End Sub
Ich will damit bezwecken das bei Änderung einer Listbox auf den Eintrag "Erledigt" die betroffene Zeile in das nächste Worksheet verschoben wird.
Ich bekomme jedoch immer den Fehler 13 "Typen unverträglich" bei "If Target.Column...": , wobei die sub aber korrekt ausgeführt wird.
Hat Jemand eine Ahnung woran das liegen könnte ?
Vieln Dank im Voraus
Homer
|