Hallo zusammen,
ich wende mich mit einem VBA-Problem an euch, da ich hier bereits viele hilfreiche und kompetente Personen unter anderen Beiträgen entdeckt habe.
Ich benötige für meine Excel-Mappe einen VBA Code. Ich habe bereits sehr viele Stunden und Tage in verschiedenen Foren und auch hier nach einer Lösung für mein Problem gesucht, jedoch nichts extakt Passendes gefunden und ich bin leider ein VBA Leie und habe versucht selbst dran rum zu basteln - jedoch vergebens.
Den gerfunden Code poste ich auch unterhalb noch einmal. Ich hoffe, dass sich hier jemand finden lässt der mir seine Hilfe anbietet und mir bei meinem Problem helfen kann!
Zu meiner Excel-Mappe:
Mein Wunsch wäre es, dass bestimmte Zeilen automatisch in andere Tabellenblätter verschoben werden, jenachdem welches "Ereigenis" in Spalte S eintrifft.
Mit Ereigenis meine ich, dass ich gerne Zeilen ausschneiden würde sobald bspw. in Spalte 19 (S) ein "Erledigt" steht und diese soll in das Tabellenblatt "Erledigt" und die darin enthaltene Tabelle "Erledigt" übernommen werden. Es sollen jedoch nur bestimmte Zellen der Spalte kopiert werden.
Ebenso soll das gleiche bei dem "Ereignis" - "Keine" passieren, jedoch nur im Tabellenblatt "Keine" und der Tabelle "Keine".
Die Tabellen fangen immer in Zeile 17 an (ich weiß nicht, ob diese Information nötig ist).
Die Zeile soll aus der aktuellen Tabelle/Tabellenblatt "Montagestatus" dann auch komplett entfernt werden. Hier sollen sich nur aktuelle Aufträge befinden - alle Erledigten oder Keinen sollen dementsprechen in das dazugehörige Blatt einsortiert werden.
Den Code den ich bereits im Internet gefunden habe, funktioniert soweit auch, jedoch weiß ich
- (1) nicht wie ich Codes zusammenführen kann
- (2) nicht wie ich es hinbekomme, dass nur bestimmte Zellen in das gewünschte Blatt übernommen werden
- (3) nicht wie diese auch wirklich in der dazugehörigen Tabelle des Tabellenblattes einsortiert werden (dies ist aktuelle nicht der Fall - die Zeilen werden einfach in die nächste freie Position kopiert)
hier noch einmal kurz zusammengefasst:
Dropdown in Spalte S Erledigt/Keine/Weitere
Wenn Erledigt schneide die Zeile aus und füge die Zellen, jedoch nur A bis R, im Tabellenblatt Erledigt in der Tabelle Erledigt ein.
Wenn Keine schneide die Zeile aus und füge die Zellen, jedoch nur A bis D, im Tabellenblatt Keine in der Tabelle Keine ein.
Bereits vorhandener Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngErste As Long
If Target.Column = 19 Then
If Target.Count = 1 Then
If Target.Value = "Erledigt" Then
With Worksheets("Erledigt")
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
Rows(Target.Row).Copy
.Cells(lngErste, 1).PasteSpecial Paste:=xlValues
Rows(Target.Row).Delete shift:=xlUp
End With
End If
End If
End If
End Sub
Und:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngErste As Long
If Target.Column = 19 Then
If Target.Count = 1 Then
If Target.Value = "Keine" Then
With Worksheets("Keine")
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
Rows(Target.Row).Copy
.Cells(lngErste, 1).PasteSpecial Paste:=xlValues
Rows(Target.Row).Delete shift:=xlUp
End With
End If
End If
End If
End Sub
Ich würde mich sehr freuen, wenn sich mir jemand annimmt und mir bei der Lösung meines Problems helfen könnte!
Vielen Dank im Vorfeld und liebe Grüße :)