Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA- Kopieren von Zeilen aus anderer Excel-Datei

VBA- Kopieren von Zeilen aus anderer Excel-Datei
Zeilen
Hi,
ich benötige Hilfe bei folgendem Problem:
Momentan habe ich schon ein Makro laufen, welches per Button komplette Sheets einer anderen Excel-Datei (ImportWkb) in meine Datei (NewWkb) kopiert. siehe Code unten.
Jetzt möchte ich dieses Makro erweitern, sodass aus einer weiteren externen Excel-Datei (ImportWkB2) Daten importiert werden, aber nur bestimmte Zeilen aus bestimmten Sheets.
Bsp.:
In der zweiten Excel-Datei sollen aus Sheet 2 die Reihen 3 & 5 sowie aus Sheet 3 die Reihen 6 & 7 in das Sheet 11 meiner Zieldatei NewWkb kopiert werden. Einfügepunkt sollte B10 sein und die kopierten Reihen einfach untereinander eingefügt werden. Ist sowas möglich?
-----Code-------:
Private Sub CommandButton1_Click()
Dim fname As Variant
Dim NewWkb As Workbook ' destination workbook
Dim ImportWkB As Workbook ' source workbook No1
Dim ImportWkB2 As Workbook ' the second excel source-file
Dim sh As Variant 'sheets
Dim DestRange As Range
Set NewWkb = ThisWorkbook
fname = Application.GetOpenFilename("Excel-Data-Input,*.xls", ,
"Source")
If fname <> False Then
Application.ScreenUpdating = False
Set ImportWkB = Workbooks.Open(fname, ReadOnly:=True, UpdateLinks:=0)
For Each sh In ImportWkB.Sheets
NewWkb.Sheets(sh.Index + 4).Cells.UnMerge 'start adding sheets in sheet 5 of newwkb
Set DestRange = NewWkb.Sheets(sh.Index + 4).Range("B10")
sh.UsedRange.Copy
With DestRange
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
Set DestRange = Nothing
Application.CutCopyMode = False
If sh.Index >= 6 Then Exit For 'only 6 sheets should be imported
Next sh
ImportWkB.Close False
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA- Kopieren von Zeilen aus anderer Excel-Datei
06.11.2009 02:08:57
Zeilen
Hallo Chris,
hier eine ungetestete Anpassung zu Ergänzung der gewünschten Kopieraktionen.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim fname As Variant
Dim NewWkb As Workbook ' destination workbook
Dim ImportWkB As Workbook ' source workbook No1
Dim ImportWkB2 As Workbook ' the second excel source-file
Dim sh As Variant 'sheets
Dim DestRange As Range
fname = Application.GetOpenFilename("Excel-Data-Input,*.xls", , "Source")
If fname  False Then
Application.ScreenUpdating = False
Set ImportWkB2 = Workbooks.Open(fname, ReadOnly:=True, UpdateLinks:=0)
For Each sh In ImportWkB.Sheets
NewWkb.Sheets(sh.Index + 4).Cells.UnMerge 'start adding sheets in sheet 5 of newwkb
Set DestRange = NewWkb.Sheets(sh.Index + 4).Range("B10")
sh.UsedRange.Copy
With DestRange
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
Set DestRange = Nothing
Application.CutCopyMode = False
If sh.Index >= 6 Then Exit For 'only 6 sheets should be imported
Next sh
ImportWkB.Close False
Set ImportWkB2 = Nothing
Application.ScreenUpdating = True
fname = Application.GetOpenFilename("Excel-Data-Input,*.xls", , _
"Source 2 mit Daten")
If fname  False Then
Application.ScreenUpdating = False
Set ImportWkB2 = Workbooks.Open(fname, ReadOnly:=True, UpdateLinks:=0)
Set DestRange = NewWkb.Sheets(11).Range("B10")
With ImportWkB2
With .Worksheets(2)
.Range(.Cells(3, 1), .Cells(3, .Columns.Count).End(xlToLeft)).Copy
With DestRange
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
.Range(.Cells(5, 1), .Cells(5, .Columns.Count).End(xlToLeft)).Copy
With DestRange.Offset(1, 0)
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
End With
With .Worksheets(3)
.Range(.Cells(6, 1), .Cells(6, .Columns.Count).End(xlToLeft)).Copy
With DestRange.Offset(2, 0)
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
.Range(.Cells(7, 1), .Cells(7, .Columns.Count).End(xlToLeft)).Copy
With DestRange.Offset(3, 0)
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
End With
Set DestRange = Nothing
Application.CutCopyMode = False
ImportWkB2.Close False
Set ImportWkB2 = Nothing
End With
End If
Application.ScreenUpdating = True
End If
End Sub

Anzeige
AW: VBA- Kopieren von Zeilen aus anderer Excel-Datei
06.11.2009 09:35:49
Zeilen
Super, das klappt!
Vielen Dank

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige