VBA: Spalten in eine andere Excel-Datei kopieren

Hallo,

ich möchte gerne bestimmte Spalten einer Excel-Tabelle anderen in der Firma zur Verfügung stellen. Eben nicht die ganze Datei, die liegt in einem Ordner mit entsprechenden Sicherheitseinstellungen, sondern eben nur die „unkritischen“ Spalten. Nun kam mir die Idee eines Makros. Grundzüge, die auch über den Makrorecorder hinausgehen, kann ich zwar, aber hiermit bräuchte ich doch Hilfe:

Meine Idee ist, dass ich das Schließen Ereignis nutze um eine bestimmte Exceldatei aus einem anderen Ordner zu öffnen. Bestimmte Spalten meiner noch aktiven Datei sollen dann kopiert werden und die nun veralteten Spalten der Datei aus dem anderen Ordner überschrieben werden. Alles wenn möglich natürlich so, dass ich wenig davon mitkriege, also wenn möglich, ohne dass sich die neue Datei öffnet, bzw. aktiv geschlossen werden muss.

Ist so was möglich, bzw. gibts was einfacheres?

Vielen Dank im Voraus
Mark

Meine Idee ist, dass ich das Schließen Ereignis nutze um eine
bestimmte Exceldatei aus einem anderen Ordner zu öffnen.
Bestimmte Spalten meiner noch aktiven Datei sollen dann
kopiert werden und die nun veralteten Spalten der Datei aus
dem anderen Ordner überschrieben werden. Alles wenn möglich
natürlich so, dass ich wenig davon mitkriege, also wenn
möglich, ohne dass sich die neue Datei öffnet, bzw. aktiv
geschlossen werden muss.

Hi Mark,

in DieseArbeitsmappe:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call tt
End Sub

in Modul1:

Option Explicit
'
Sub tt()
Dim wkb As Worksheet
Application.ScreenUpdating = False
Set wkb = ThisWorkbook.Worksheets("Tabelle1")
Workbooks.Open "NichtGeheim.xls"
'Windows("NichtGeheim.xls").Visible = False
With Workbooks("NichtGeheim.xls").Worksheets("Tabelle1")
 .Columns(3).ClearContents
 .Columns(8).ClearContents
 wkb.Columns(3).Copy Destination:=.Range("C1")
 wkb.Columns(8).Copy Destination:=.Range("H1")
End With
'Windows("NichtGeheim.xls").Visible = True
Workbooks("NichtGeheim.xls").Close savechanges:=True
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

Hallo Reinhard,

vielen Dank für deine Nachricht. Funktioniert wunderbar. Habs schon an meine Tabelle angeglichen.

Viele Grüße
mark