Hallo Experten,
ich will von einer Arbeitsmappe in die andere etwas kopieren,
option Explicit
Sub copy2map2()
DIM i,k as Integer
Dim letzteReihe as Integer
k=4
letzteReihe=20
For i = 1 to 30
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, letzteReihe)).Copy
Windows("mappe2.xls").Activate
Cells(k, 1).PasteSpecial
Windows("mappe1.xls").Activate
k= k+1
next i
end sub
Das mit dem Windows.Activate ist komplett nutzlos und frisst nur zeit.
Ich müsste doch direkt auf die Zelle zugreifen können.
irgendwie so:
Windows("mappe2.xls").Range(Cells(k, 1)).PasteSpecial
dann würde ich mir das hin und her schalten sparen.
Könnt ihr mir da weiter helfen?
Danke
Hi Winter,
wieso „Cut“ ?, sehe nur Copy.
So wie ich es sehe kopierst du immer den gleichen Bereich:
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row,letzteReihe)).Copy
aus Mappe1 30 mal nach cells(4,1) und darunter, in Mappe2
Ist das so?
Wenn ja:
Dann kannst du dir die Variable i sparen, nimm gleich k als Laufvariable der For-Schleife, von 4 bis 33/34
oder, laß die Schleife weg und mach das auf einen Rutsch.
Wenn nein:
Habe ich wieder mal nix kapiert *suefz* 
Übrigens, die Variabele i ist Variant deklariert, nicht daß du evtl. glaubst Integer 
Gruß
Reinhard
Grüezi Winterknight
ich will von einer Arbeitsmappe in die andere etwas kopieren,
Je nachdem was genau Du möchtest könnten dir die folgenden Zeilen weiterhelfen. Deklariert habe ich die Variablen als Long (falls es mal mehr wie 32768 Zeilen sind) und die unterschiedlichen Varianten im Code auch kommentiert:
Option Explicit
Sub copy2map2()
Dim i As Long
Dim k As Long
Dim letzteReihe As Integer
k = 4
letzteReihe = 20
For i = 1 To 30
'Nur die Werte
Workbooks("Mappe2").Worksheets("Tabelle1").Cells(k, 1).Resize(1, letzteReihe).Value = \_
ActiveCell.Resize(1, letzteReihe).Value
'Mit den Formatierungen
Cells(ActiveCell.Row, 1).Resize(1, letzteReihe).Copy \_
Workbooks("Mappe2").Worksheets("Tabelle1").Cells(k, 1).Resize(1, letzteReihe)
k = k + 1
Next i
End Sub
–
Mit freundlichen Grüssen
Thomas Ramel
Grüezi Winterknight
Option Explicit
Sub copy2map2()
Dim i As Long
Dim k As Long
Dim letzteReihe As Integer
k = 4
letzteReihe = 20
For i = 1 To 30
'Nur die Werte
Workbooks(„Mappe2“).Worksheets(„Tabelle1“).Cells(k,
1).Resize(1, letzteReihe).Value = _
ActiveCell.Resize(1, letzteReihe).Value
'Mit den Formatierungen
Cells(ActiveCell.Row, 1).Resize(1, letzteReihe).Copy _
Workbooks(„Mappe2“).Worksheets(„Tabelle1“).Cells(k,
1).Resize(1, letzteReihe)
k = k + 1
Next i
End Sub
Thomas Ramel
Hallo Thomas,
Super
Danke,
ich bin mir nicht 100%ig sicher, ob es das macht was ich will, werde es aber testen.
Wobei ich mir sicher bin ist, dass es mir wieter hilft. Vor allem das ohne Formatierungen, das ist eigentlich das was ich will, die nur die werte.
Danke
Gruß Winter