Ich kopiere heute ganz einfach einen Bereich einer Lasche in eine andere Lasche:
Dim N As Long
'Bereich kopieren
strTmp = Cells(Selection.Row, 34).Resize(Selection.Rows.Count, 45).Copy
'Bereich einfügen
Worksheets("CSV").Activate
N = Cells(Rows.Count, "A").End(xlUp).Row + 1
Cells(N, "A").PasteSpecial Paste:=xlValues
'Cells(1, 1).Select
'Worksheets("Berechnung").Activate
Nun habe ich ein neues Muster Makro erhalten, um es etwas ausführlicher zu machen:
Dim e As Object, rngS As Range
For Each e In Sheets("Berechnung").Range("A2:A" & Sheets("Berechnung").Cells(Rows.Count, 1).End(xlUp).Row)
With Sheets("CSV").Range("A2:A" & Sheets("CSV").Cells(Rows.Count, 1).End(xlUp).Row)
Set rngS = .Find(e.Value)
If Not rngS Is Nothing Then
If Sheets("CSV").Cells(rngS.Row, 9).Value Sheets("Berechnung").Cells(e.Row, 2).Value Then
Sheets("CSV").Cells(rngS.Row, 9).Value = Sheets("Berechnung").Cells(e.Row, 2).Value
End If
Else
Sheets("CSV").Cells(Sheets("CSV").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = e.Value
Sheets("CSV").Cells(Sheets("CSV").Cells(Rows.Count, 1).End(xlUp).Row, 9).Value = Sheets("Berechnung").Cells(e.Row, 2).Value
End If
End With
Next e
MsgBox "Übertrag durchgeführt!", vbInformation, "Meldung"
Müsste es nun aber noch etwas anpassen:
1. Statt RangeA2:A, die aktuelle Selektion siehe 1. Makro (strTmp = Cells(Selection.Row, 34).Resize(Selection.Rows.Count, 45).Copy)
2. .Find(e.Value). Wert nur in der Spalte A suchen
3. Statt Row 9 / Row 2 kopieren, einfach die ganze Selektion kopieren.
Wäre grossartig wenn mir das jemand umschreiben könnte. Herzlichen Dank!