Hi Micha,
wenn du direkt beim Eintragen von "x" in Spalte E die Daten übertragen möchtest besteht die Gefahr, dass du versehentlich in der falschen Zeile das "x" setzt und dann werden die falschen Daten übertragen. Deshalb würde ich es lieber wie folgt machen:
1. trage zuerst in alle Zeilen in Spalte E ein "x" ein die übertragen werden sollen
2. wenn alle zu übertragenden Zeilen ein "x" haben mache in Spalte E einen Doppelklick
3. der Doppelklick löst dann den Code aus der alle mit "x" gekennzeichneten Zeilen überträgt
Dazu musst du folgenden Code ins Codemodul des Tabellenblatte "offene Zahlungen" kopieren:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngZeile As Long
Dim lngErste As Long
Dim rngUebertragen As Range
If Not Intersect(Target, Columns(5)) Is Nothing Then
' in Spalte E steht mindesten 1 mal "x" oder "X"
If Application.CountIf(Columns(5), "x") > 0 Or Application.CountIf(Columns(5), "X") > 0 Then
' Zellbearbeitung abschalten
Cancel = True
' erste freie Zeile in Tabellenblatt "bestätigte Zahlungen" ermitteln
lngErste = Worksheets("bestätigte Zahlungen").Cells(Rows.Count, 1).End(xlUp).Row + 1
' Schleife von Zeile 2 bis letzte belegte Zeile
For lngZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
' in laufender Zeile Spalte E steht "x" oder "X"
If UCase(Cells(lngZeile, 5)) = "X" Then
' Variable noch leer
If rngUebertragen Is Nothing Then
' laufende Zelle Spalte A in Variable schreiben
Set rngUebertragen = Cells(lngZeile, 1)
' Variable bereits belegt
Else
' laufende Zelle Spalte A zusätzlich in Variable schreiben
Set rngUebertragen = Union(rngUebertragen, Cells(lngZeile, 1))
End If
End If
Next lngZeile
' es wurden Zellen mit "x" oder "X" in Spalte E gefunden und stehen in der Variablen
If Not rngUebertragen Is Nothing Then
' alle Zeilen die in der Variablen stehen kopieren
rngUebertragen.EntireRow.Copy Worksheets("bestätigte Zahlungen").Cells(lngErste, 1)
' alle Zeilen di in der Variablen stehen löschen
rngUebertragen.EntireRow.Delete shift:=xlUp
End If
End If
End If
End Sub
Ins Codemodul des Tabellenblattes gelangst du wie folgt: Alt+F11 öffnet den VBA-Editor. Im dortigen linken Fenster siehst du alle VBA-Bestandteile deiner Arbeitsmappe - da steht u.a. dann z.B. Tabelle1(offene Zahlungen). Darauf machst du einen Doppelklick, sodass im rechten Teil des VBA-Editors ein leeres Fenster angezeigt wird. Den gesamten Code kopierst du dann in dieses rechte Fenster. Aktiviere dann wieder dein Tabllenblatt "offene Zahlungen" und schon kann es losgehen: Doppelklick in Spalte E und alle mit "x" gekennzeichneten Zeilen werden übertragen.
Bis später, Karin