Kopieren ausgewählter Spalten in anderes Workbook

Hallo Wer-Weiss-Was-Gemeinde,

hab da ein VBA Problem beim kopieren von Spalten in ein anderes Workbook.

Das Kopieren soll möglichst „generisch“ sein, im Sinne von, es dürfen keinerlei festgelegte Werte darin vorkommen (Kein QuelltabellenName, ZieltabellenName, zu kopierende Spalten, wo die kopierten einzufügen sind)

bisher hab ich es so versucht, aber es gibt leider einen anwendungs/objektfehler:

ColumNumbersToImport ist ein Array (Integer) gefüllt mit den SpaltenNummern der zu importierenden Spalten (wird an anderer stelle aus den Namen der spaltenüberschriften berechnet)

srcTable ist der variable (String) des QuellWorksheets

TarFile ist der Name (String) des ZielWorkbooks inkl .xlsm am ende

tarTable ist der variable Name (String) des ZielWorksheets

CODE :

Sheets(srcTable).Select

_For i = LBound(ColumnNumbersToImport) To UBound(ColumnNumbersToImport)

Worksheets(srcTable).Columns(ColumnNumbersToImport(i)).Copy Destination:=Workbooks(TarFile).Sheets(tarTable).Range(i)

Next_

Problem ist dass ich keine Spaltenangaben wie z.B. A:A machen kann (Ausser es geht ned anders und ich kann sie durch ein makro berechnen lassen)

hab den fehler selbst gefunden. das bei der recherche nach der problemlösung oft genutzte .Range in verbindung mit dem spaltenbuchstaben (z.B. A:A) war das problem.

hier einfach auch .Columns einzusetzen behebt das prob - sehr naheliegend, wo ich doch zuvor schon ein .Columns bei der Auswahl der Spalte mache…

najo

merci trotzdem, vielleicht hilft es ja jemandem :wink:

/close

Sheets(srcTable).Select

_For i = LBound(ColumnNumbersToImport) To
UBound(ColumnNumbersToImport)

Worksheets(srcTable).Columns(ColumnNumbersToImport(i)).Copy
Destination:=Workbooks(TarFile).Sheets(tarTable).Range(i)

Next_

Hallo mole,

ungetestet:

Sub tt()
For i = LBound(ColumnNumbersToImport) To UBound(ColumnNumbersToImport)
 With Worksheets(srcTable).Columns(ColumnNumbersToImport(i))
 .Copy Destination:=Workbooks(TarFile).Sheets(tarTable).Columns(i)
 End With
Next i
End Sub

Gruß
Reinhard