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

Kopieren

Forumthread: Kopieren

Kopieren
Holger
Aus SAP exportiere ich Daten nach Excel. Hierbei wird die Arbeitsmappe X mit dem Tabellenblatt X erzeugt.
Wie kann ich per VBA folgendes erreichen:
Aus dem Tabellenblatt „X“ sollen zunächst die Zeilen 1-7 und die Spalten 1,2,8,9,15 gelöscht werden. Der dann verbleibende variierende Bereich soll kopiert und in die im gleichen Ordner bestehende, aber noch nicht geöffnete Mappe „Y“ , Tabellenblatt “Y“ an Position A7 eingefügt werden.
Dann soll die Ursprungsmappe X – da sie immer neu aus SAP erzeugt wird – gelöscht werden.
Es wäre schön, wenn mir aus dem Forum mit entsprechenden VBA-Code geholfen werden könnte.
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kopieren
09.08.2012 15:09:19
Rudi
Hallo,
teste mal:
Sub Import()
Dim sFileX As String, sFileY As String
Dim wkbX As Workbook, wkbY As Workbook, iColumn, arrColumns
sFileX = "c:\temp\x.xls"
sFileY = "c:\temp\y.xls"
arrColumns = Array(15, 9, 8, 2, 1)
Application.ScreenUpdating = False
Set wkbX = Workbooks.Open(sFileX)
Set wkbY = Workbooks.Open(sFileY)
With wkbX.Sheets("X")
.Rows("1:7").Delete
For iColumn = 0 To UBound(arrColumns)
.Columns(arrColumns(iColumn)).Delete
Next
.Range("A1").CurrentRegion.Copy
End With
With wkbY.Sheets("y")
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
End With
End Sub

Gruß
Rudi
Anzeige
AW: Kopieren, Ergänzung
09.08.2012 15:12:36
Rudi
Hallo,
speichern und löschen vergessen.
Sub Import()
Dim sFileX As String, sFileY As String
Dim wkbX As Workbook, wkbY As Workbook, iColumn, arrColumns
sFileX = "c:\temp\x.xls"
sFileY = "c:\temp\y.xls"
arrColumns = Array(15, 9, 8, 2, 1)
Application.ScreenUpdating = False
Set wkbX = Workbooks.Open(sFileX)
Set wkbY = Workbooks.Open(sFileY)
With wkbX
With .Sheets("X")
.Rows("1:7").Delete
For iColumn = 0 To UBound(arrColumns)
.Columns(arrColumns(iColumn)).Delete
Next
.Range("A1").CurrentRegion.Copy
End With
.Close False
End With
With wkbY
With .Sheets("y")
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
End With
.Close True
End With
Kill sFileX
End Sub

Gruß
Rudi
Anzeige
AW: Kopieren, Ergänzung
09.08.2012 17:22:16
Holger
Hallo Rudi,
vielen Dank für die schnelle Antwort. Ich werde das morgen im Büro sofort ausprobieren.
Gruß, Holger
AW: Kopieren, Ergänzung
10.08.2012 09:02:30
Holger
Hallo Rudi,
ich habe deinen Code an meine Daten angepasst. Leider bleibt der Ablauf mit der Meldung "Objekt unterstützt diese Eigenschaft oder Methode nicht" an dieser Stelle stehen:
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
Hast du da vielleicht einen Änderungsvorschlag? Danke.
Gruß, Holger
Anzeige
AW: Kopieren, Änderung
10.08.2012 09:08:27
Rudi
Hallo,
Sub Import()
Dim sFileX As String, sFileY As String
Dim wkbX As Workbook, wkbY As Workbook, iColumn, arrColumns
sFileX = "c:\temp\x.xls"
sFileY = "c:\temp\y.xls"
arrColumns = Array(15, 9, 8, 2, 1)
Application.ScreenUpdating = False
Set wkbX = Workbooks.Open(sFileX)
Set wkbY = Workbooks.Open(sFileY)
With wkbX
With .Sheets("X")
.Rows("1:7").Delete
For iColumn = 0 To UBound(arrColumns)
.Columns(arrColumns(iColumn)).Delete
Next
.Range("A1").CurrentRegion.Copy _
wkbY.Sheets("y").Cells(Rows.Count, 1).End(xlUp).Offset(1)
End With
.Close False
End With
wkbY.Close True
Kill sFileX
End Sub

Gruß
Rudi
Anzeige
AW: Kopieren, Änderung
10.08.2012 09:47:47
Holger
Hallo Rudi,
bleibt nach Änderung immer noch an der gleichen Stelle stehen.
Gruß, Holger
AW: Kopieren, Änderung
10.08.2012 09:48:28
Holger
Hallo Rudi,
bleibt nach Änderung immer noch an der gleichen Stelle stehen.
Gruß, Holger
nächster Versuch
10.08.2012 11:36:17
Rudi
Hallo,
verstehe ich nicht.
Sub Import()
Dim sFileX As String, sFileY As String
Dim wkbX As Workbook, wkbY As Workbook, iColumn, arrColumns
sFileX = "c:\temp\x.xls"
sFileY = "c:\temp\y.xls"
arrColumns = Array(15, 9, 8, 2, 1)
Application.ScreenUpdating = False
Set wkbX = Workbooks.Open(sFileX)
Set wkbY = Workbooks.Open(sFileY)
With wkbX
With .Sheets("X")
.Rows("1:7").Delete
For iColumn = 0 To UBound(arrColumns)
.Columns(arrColumns(iColumn)).Delete
Next
.Range("A1").CurrentRegion.Copy
End With
.Close False
End With
With wkbY
With .Sheets("Y")
.Paste .Cells(Rows.Count, 1).End(xlUp).Offset(1)
End With
.Close True
End With
Application.CutCopyMode = False
Kill sFileX
End Sub

Gruß
Rudi
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