Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
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
Inhaltsverzeichnis

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

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

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige