AW: Selektive Datenübernahme
05.07.2007 16:28:00
Chaos
Servus,
Private Sub Workbook_Open()
Dim n As String
Dim zeile As Integer, reihe As Integer
n = ActiveWorkbook.Name
Workbooks.Open Filename:= "C:\ ..." ' Hier Pfad von A
With Workbooks("A.xls").Sheets("DeinBlattname")
reihe = Range("F65536").End(xlUP).Offset(0, 0).Row
For zeile = 1 To reihe Step 1
If Cells(zeile, 6).Value = "XYZ" Then
Cells(zeile, 6).EntireRow.Copy Destination:= Workbooks(n).Sheets("ZielTabelle). _
Range("A65536").End(xlUp).Offset(1, 0)
End if
Next zeile
End with
End Sub
kopiert alles, was XYZ in Spalte F stehen hat in das neue Workbook unten dran, allerdings jedesmal alles.
Weiß nicht, ob dir damit geholfen ist, weil du ja unter Umständen Daten doppelt drin hast.
oder so:
Private Sub Workbook_Open()
Dim n As String
Dim zeile As Integer, reihe As Integer, reihe 2 As Integer, zeile1 As Integer
n = ActiveWorkbook.Name
Workbooks.Open Filename:= "C:\ ..." ' Hier Pfad von A
With Workbooks("A.xls").Sheets("DeinBlattname")
reihe = .Range("F65536").End(xlUP).Offset(0, 0).Row
For zeile = 1 To reihe Step 1
If .Cells(zeile, 6).Value = "XYZ" Then
.Cells(zeile, 6).EntireRow.Copy Destination:= Workbooks(n).Sheets("ZielTabelle) _
.Cells(zeile, 1)
End if
Next zeile
End with
With Workbooks(n).Sheets("ZielTabelle")
reihe2 = .Range("F65536").End(xlUP).Offset(0, 0).Row
For zeile1 = reihe To 1 Step -1
If .Cells(zeile1, 1).Value = "" Then
.Cells(zeile1, 1).EntireRow. Delete
End if
Next zeile1
End with
End Sub
schreibt die kopierten Daten in die jeweilige Zeile (Quellzeile = Zielzeile) und löscht dann, die evtl. Leerzeilen.
Ausprobieren, obs geht (Extramappe)
Gruß
Chaos