Hallo Barbara,
ich hoffe, du kannst mir nochmal helfen.
Nachdem ich den VBA-Code aus meiner Beispieltabelle versucht habe, in meiner Originaltabelle umzusetzen, habe ich wieder ein Problem...
1.) Die relevanten Werte aus der jeweils letzten Zeile im Tabellenblatt "Quelle" werden jetzt leider nicht mehr in mehr in das Tabellenblatt "Ziel" kopiert.
2.) Zudem habe ich jetzt wieder das Problem, dass wenn ich in den bestehenden Zeileneinträgen im Tabellenblatt "Quelle" einen Wert hinzufüge, dass sich dadurch wieder die Zeilen im Tabellenblatt "Ziel" nach unten verschiebe und nicht ganz unten in der ersten leeren Zeile im Tabellenblatt "Ziel" angehängt werden (z.B. wenn ich im Tabellenblatt "Quelle" in die Zelle "S2" einen neuen Eintrag vornehmen).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Quell_Tabellenblatt() As Variant
Dim Ziel_Tabellenblatt() As Variant
'Ausgangsblatt
Dim lfd_Zeile_Quelle As Long 'Laufende Zeile
Dim lfd_Spalte_Quelle As Long 'Laufende Spalte
'Ergebnisblatt
Dim lfd_Zeile_Ziel As Long 'Eintragszeile
Quell_Tabellenblatt = Sheets("Quelle").Range("A1").CurrentRegion.Value
With Sheets("Ziel")
If .Cells(1, 4) "Aktenzeichen" Then
ReDim Ziel_Tabellenblatt(1 To 17, 4 To 4)
Ziel_Tabellenblatt(1, 4) = "Akten-zeichen"
Ziel_Tabellenblatt(2, 4) = "AO-Grund"
Ziel_Tabellenblatt(3, 4) = "Vertrags-art"
Ziel_Tabellenblatt(4, 4) = "Investitionsnr./ Sachkonto lt. VOA"
Ziel_Tabellenblatt(6, 4) = "Sach-bearbeiter"
Ziel_Tabellenblatt(7, 4) = "KV UR-Nr."
Ziel_Tabellenblatt(8, 4) = "MA UR-Nr."
Ziel_Tabellenblatt(9, 4) = "Notar"
Ziel_Tabellenblatt(10, 4) = "Vertragspartner"
Ziel_Tabellenblatt(11, 4) = "Kaufpreis gesamt"
Ziel_Tabellenblatt(12, 4) = "Fläche gesamt"
Ziel_Tabellenblatt(13, 4) = "Betrag lt. Vertrag"
Ziel_Tabellenblatt(14, 4) = "freigemeldete HH-Mittel"
Ziel_Tabellenblatt(15, 4) = "Finanzierung"
Ziel_Tabellenblatt(16, 4) = "Anlagennr."
Else
Ziel_Tabellenblatt = Application.Transpose(.Range("A1").CurrentRegion.Resize(, 21). _
Value)
End If
For lfd_Zeile_Quelle = 2 To UBound(Quell_Tabellenblatt, 1)
For lfd_Spalte_Quelle = 14 To 21
For lfd_Zeile_Ziel = 4 To UBound(Ziel_Tabellenblatt, 2)
If Ziel_Tabellenblatt(1, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 1) Then
If Ziel_Tabellenblatt(3, lfd_Zeile_Ziel) = Quell_Tabellenblatt(1, _
lfd_Spalte_Quelle) Then
Ziel_Tabellenblatt(2, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, lfd_Spalte_Quelle)
Ziel_Tabellenblatt(3, lfd_Zeile_Ziel) = Quell_Tabellenblatt(1, _
lfd_Spalte_Quelle)
Exit For
End If
End If
Next lfd_Zeile_Ziel
If lfd_Zeile_Ziel > UBound(Ziel_Tabellenblatt, 2) Then
If Quell_Tabellenblatt(lfd_Zeile_Quelle, lfd_Spalte_Quelle) "" Then
ReDim Preserve Ziel_Tabellenblatt(1 To 17, 4 To lfd_Zeile_Ziel)
'Füllt die 1. Spalte ("Aktenzeichen") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(1, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 1)
'Füllt die 3. Spalte ("Vertragsart") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(3, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 2)
'Füllt die 6. Spalte ("Sachbearbeiter") der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(6, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 4)
'Füllt die 7. Spalte ("KV UR-Nr.") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(7, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 8)
'Füllt die 8. Spalte ("MA UR-Nr.") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(8, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 9)
'Füllt die 9. Spalte ("Notar") in der Zieltabelle mit den zugehörigen _
Daten aus der Quelltabelle
Ziel_Tabellenblatt(9, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 6)
'Füllt die 10. Spalte ("Vertragspartner") in der Zieltabelle mit den _
zugehörigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(10, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 7)
'Füllt die 11. Spalte ("Kaufpreis gesamt") in der Zieltabelle mit den _
zugehörigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(11, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 10)
'Füllt die 12. Spalte ("Fläche gesamt") in der Zieltabelle mit den _
zugehörigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(12, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 11)
'Füllt die 14. Spalte ("freigemeldete HH-Mittel") in der Zieltabelle _
mit den zugehörigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(14, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 22)
'Füllt die 15. Spalte ("Finanzierung") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(15, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 12)
'Füllt die 16. Spalte ("Anlagennr.") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(16, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, 13)
Ziel_Tabellenblatt(13, lfd_Zeile_Ziel) = Quell_Tabellenblatt( _
lfd_Zeile_Quelle, lfd_Spalte_Quelle)
'Füllt die 2. Spalte ("AO-Grund") in der Zieltabelle mit den zugehö _
rigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(2, lfd_Zeile_Ziel) = Quell_Tabellenblatt(1, _
lfd_Spalte_Quelle)
'Füllt die 4. Spalte ("Investitionsnr./Sachkonto") in der Zieltabelle _
mit den zugehörigen Daten aus der Quelltabelle
Ziel_Tabellenblatt(4, lfd_Zeile_Ziel) = Ziel_Tabellenblatt(15, _
lfd_Zeile_Ziel)
End If
End If
Next lfd_Spalte_Quelle
Next lfd_Zeile_Quelle
Ziel_Tabellenblatt = Application.Transpose(Ziel_Tabellenblatt)
.Range(.Cells(4, 1), _
.Cells(1 + UBound(Ziel_Tabellenblatt, 1) - LBound(Ziel_Tabellenblatt, 1), _
1 + UBound(Ziel_Tabellenblatt, 2) - LBound(Ziel_Tabellenblatt, 2))).Value _
= Ziel_Tabellenblatt
End With
End Sub
Was habe ich falsch gemacht?
Eine Kurzfassung meiner Originaldatei habe ich dir wieder als Anlage beigefügt.
https://www.herber.de/bbs/user/122439.xlsm
Für deine erneute Hilfe wäre ich dir sehr dankbar.
LG
Micha