Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrere Zeilen+Spalten in andere Exceldatei kopier

mehrere Zeilen+Spalten in andere Exceldatei kopier
15.12.2005 13:47:27
Simon
Guten Mittag,
Ein bestimmter Bereich einer Originaldatei soll an das Ende einer anderen Exceldatei kopiert werden.
Für "nur" eine Zeile klappt das auch schon ganz gut. Was aber wenn der Bereich über zwei (mehrere) Zeilen geht?
Geht eigentlich nur um die Zeile (soweit ich es verstehe), denn für nur eine Zeile funktioniert es...
(hab da mal so eine kleine for-Schleife drumgebaut, syntax stimmt aber wohl nicht ganz)
Set ErsterBereich = Worksheets("input").Range(.Cells(x, 2), .Cells(x, 46))
Besten Dank für jeglichen Tip!
Simon
~f~
Dim wks As Worksheet, Dateiname As String
Dateiname = "c:\db.xls"
Dim wb As Workbook, rng As Range, iRowZ As Integer, iCol As Integer, rng_tmp As Range
' Zielmappe öffnen
Set wb = Workbooks.Open(Filename:=Dateiname)
With wb.Worksheets(1) ' erste freie Zeile des Zielblatts
iRowZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
iCol = 1
ThisWorkbook.Activate
For x = 7 To 46
If Cells(x, 2).Text = "" Then
Else
'Set ErsterBereich = Worksheets("input").Range("B7:B46") '
&gt&gt&gt&gt&gt&gt
Set ErsterBereich = Worksheets("input").Range(.Cells(x, 2), .Cells(x, 46))
&gt&gt&gt&gt&gt&gt
For Each rng In ErsterBereich
rng.Copy
Set rng_tmp = .Cells(iRowZ, iCol)
'rng_tmp.PasteSpecial xlPasteAll ' Alles (Formeln) aus Zwischenabl.
rng_tmp.PasteSpecial xlPasteValues ' Werte aus Zwischenabl.
iCol = iCol + 1
Next rng
End If
Next x
End With ' Zielmappe schließen+sichern
wb.Close SaveChanges:=tru ' Werte im selektierten Bereich löschen
'Selection.ClearContents ' aufräumen
Cells(1, 1).Select
Set wb = Nothing
Set rng = Nothing

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Zeilen+Spalten in andere Exceldatei ko
16.12.2005 19:00:10
Erich
Hallo Simon,
das geht etwas kürzer, vor allem kannst du Zellbereiche statt jeder Zelle einzeln kopieren.
Immer zu empfehlen ist Option Explicit ganz oben im Modul.
Variablen für Zeilennummern sollten immer den Typ Long haben - 65536 passt nicht in ein Integer.
Wichtig ist, die Zeilennummer der Zielzeile heraufzusetzen - sonst überschreibst du das bisher kopierte immer wieder.
Vorschlag zum Testen (ist ungetestet):

Option Explicit
Sub tst()
Dim Dateiname As String, wb As Workbook
Dim rng As Range, lngRowZ As Long, lngRowQ As Long
Dateiname = "c:\db.xls"
Set wb = Workbooks.Open(Filename:=Dateiname) ' Zielmappe öffnen
ThisWorkbook.Activate                        ' diese Mappe aktivieren
Worksheets("input").Activate
With wb.Worksheets(1)                        ' erste freie Zeile des Zielblatts
lngRowZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For lngRowQ = 7 To 46
If Cells(lngRowQ, 2).Text > "" Then
Set rng = Range(.Cells(lngRowQ, 2), .Cells(lngRowQ, 46))
rng.Copy Destination:=.Cells(lngRowZ, 1)
lngRowZ = lngRowZ + 1               ' Zielzeile erhöhen
'           rng.ClearContents                   ' evtl. Quellwerte löschen
End If
Next lngRowQ
End With
wb.Close SaveChanges:=True                   ' Zielmappe schließen+sichern
Set wb = Nothing
Cells(1, 1).Select                           ' aufräumen
Set rng = Nothing
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige