Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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 Copy/Paste Spalten in andere Datei

VBA Copy/Paste Spalten in andere Datei
23.08.2014 11:23:10
Sio

Hallo, lerne gerade VBA und bastel gerade an folgendem Makro:
Ziel des Makros:
-Spalten A:C kopieren
- Datei auswählen wohin es kopiert werden soll
- Einfügen in ein spezielles Worksheet dieser Datei
- Refresh der Datei
- schließen der Datei woraus es kopiert wurde
Das habe ich bisher:
Option Explicit

Sub copy()
'Last cell in column
Dim WS As Worksheet
Dim LastCell As Range
Dim LastCellRowNumber As Long
Set WS = ActiveSheet
With WS
Set LastCell = .Cells(.Rows.Count, "C").End(xlUp)
LastCellRowNumber = LastCell.Row + 1
End With
Dim wb As Workbook, wb2 As Workbook
Dim vFile As Variant
'Set source workbook
Set wb = ActiveWorkbook
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
'Set selectedworkbook
Set wb2 = ActiveWorkbook
'Select cells to copy
wb2.ActiveSheet.Range(Range("A1"), Range("C1").End(xlDown)).copy
'Go back to original workbook you want to paste into
wb.Activate
'Paste starting at the last empty row
wb.Worksheets("Tabelle1").Range("C" & LastCellRowNumber).PasteSpecial Paste:=xlPasteValues,  _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
'Close and save the workbook you copied from
wb2.Save
wb2.Close
End Sub

Funktioniert einigermaßen, nur dass er nicht die komplette Spalte kopiert und teile weglässt und wenn ich z.B. von Spalte A:C kopiere, fügt er in C:E ein, es soll aber in der Spalte A:C bleiben.
Vielen Dank im voraus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Copy/Paste Spalten in andere Datei
23.08.2014 11:39:27
Hajo_Zi
ich hätte den Code ein wenig anders geschrieben.
Die komplette Spalte soll auch nicht kopiert werden laut Code. Das würde auch nicht gehen. Da nach der letzten Zelle in Spalte C nicht mehr eine3 komplette Spalte eingefügt werden kann.
Option Explicit
Sub copy()
'Last cell in column
Dim vFile As Variant
Dim LastCellRowNumber As Long
Application.ScreenUpdating = False
LastCellRowNumber = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row,  _
Rows.Count) + 1
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) <> "Boolean" Then
Workbooks.Open vFile
ActiveSheet.Range(Range("A1"), Range("C1").End(xlDown)).copy
'Go back to original workbook you want to paste into
'wb.Activate
'Paste starting at the last empty row
ThisWorkbook.Worksheets("Tabelle1").Range("C" & LastCellRowNumber).PasteSpecial Paste:= _
xlPasteValues
Application.CutCopyMode = False
End If
'Close and save the workbook you copied from
ActiveWorkbook.Close True
End Sub

Anzeige
AW: VBA Copy/Paste Spalten in andere Datei
23.08.2014 12:02:24
Sio
Danke für die schnelle Antwort. Habe den selben Fehler.
Ich lade zwei Beispieldateien hoch, damit es deutlicher wird.
Makro Datei(die als erstes ausführen) https://www.herber.de/bbs/user/92246.xlsm
BeispielTabelle die kopiert werden soll (diese mit dem Macro öffnen): https://www.herber.de/bbs/user/92247.xlsx
Wenn ich das Macro ausführe, kopiert er nur eine Zeile aus den 3 Spalten.
Noch ein Fehler der mir aufgefallen ist, wenn ich keine Datei auswählen möchte und das Macro abbrechen möchte, shcließt er das Worksheet im Macro.

Anzeige
AW: VBA Copy/Paste Spalten in andere Datei
23.08.2014 12:07:29
Hajo_Zi
zum testen bist Du da. Teste im Einzelschritt. Vergesse nicht auf die Zeile "If TypeName(vFile) <> "Boolean..." einen Halte punkt zu setzen.
Option Explicit
Sub copy()
'Last cell in column
Dim vFile As Variant
Dim Loletzte As Long
Dim LastCellRowNumber As Long
Application.ScreenUpdating = False
LastCellRowNumber = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row,  _
Rows.Count) + 1
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) <> "Boolean" Then
Workbooks.Open vFile
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows. _
Count) + 1
ActiveSheet.Range(Range("A1"), Range("C" & Loletzte)).copy
'Go back to original workbook you want to paste into
'wb.Activate
'Paste starting at the last empty row
ThisWorkbook.Worksheets("Tabelle1").Range("C" & LastCellRowNumber).PasteSpecial Paste:= _
xlPasteValues
Application.CutCopyMode = False
'Close and save the workbook you copied from
ActiveWorkbook.Close True
End If
End Sub
Gruß Hajo

Anzeige
Danke Hajo! Eine Kleinigkeit noch
23.08.2014 12:13:07
Sio
Vielen Dank, funktioniert super. Jetzt nur noch die Kleinigkeit, dass er die Spalten A:C in C:E kopiert und nicht 1:1 in die andere Datei übernimmt. Das ist leider das wichtigste an der Sache.
Viele Grüße!

AW: Danke Hajo! Eine Kleinigkeit noch
23.08.2014 12:22:26
Sio
Habs selber hinbekommen, DANKE!!

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige