6.5k Aufrufe
Gefragt in Tabellenkalkulation von hoax Einsteiger_in (91 Punkte)
Hallo Forum,

ich habe für Excel eine Tabelle/Blatt, welche ich nachhaltig pflegen möchte.
In dem Blatt "Lagerliste" stehen in jeder Reihe Daten, ab A9 bis R9 und abwärts bis ca. 700.
Wenn ich nun in M9 o M... ein Datum eintrage, möchte ich, daß die jeweilige Zeile (in diesem Fall 9) in eine neues Blatt names "Legende" jeweils in die nächste freie Zeile kopiert wird.
Ich habe gelesen mit VBA wäre sowas möglich...

Grüße

Hajo

12 Antworten

0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
Hallo Helmut

und vielen Dank für den Tip, ich konnte mit dessen Hilfe die Stelle finden wo es klemmte und hab es geschafft mit Hilfe eines anderen Beitrages aus diesem Forum den VBA-Code so umzustellen, daß es jetzt funktioniert und zwar so:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 13 And Target.Row >= 8 And Target.Row <= 1000 And IsNumeric(Target) Then
Rows(Target.Row).Copy Worksheets("Legende").Rows(Worksheets("Legende").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
cells(Target.Row,10)=""
cells(Target.Row,11)=""
cells(Target.Row,13)=""
cells(Target.Row,14)=""
End If
End If
End Sub

Keine Ahnung warum, aber jetzt funktioniert es :-)

Grüße und vielen Dank

Hajo
0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
Sorry, so ist es jetzt:


Option Explicit

Private Sub Worksheet_change(ByVal Target As Range)
If Target.Column = 13 And Target.Row >= 8 And Target.Row <= 1000 And IsNumeric(Target) Then
With Worksheets("Legende")
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 13)), _
.Cells(.Rows.Count, 13).End(xlUp).Row, .Rows.Count) + 1
Rows(Target.Row).Copy .Cells(LoLetzte, 1)
cells(Target.Row,10)=""
cells(Target.Row,11)=""
cells(Target.Row,13)=""
cells(Target.Row,14)=""
End With
End If
End Sub


Gruß Hajo
...