schosch
Goto Top

Bestimmte Spalten automatisch von Excel zu Excel kopieren

Hallo miteinander,

ich habe hier eine vollständige Mitarbeiterdatei im Excel 2010-Format, die natürlich nicht jeder einsehen darf. Darum möchte ich für diese Datei nur den entsprechenden Personalern Zugriff gewähren und bei einer Änderung automatisch einige Spalten in eine für alle Mitarbeiter zugängliche Excel-Datei kopieren.
Per Verlinkung auf die vollständige Datei klappt es nicht, da ich den Zugriff über die NTFS-Rechte einschränke.
Beim automatischen Kopieren per vba reichen meine Skriptkenntnisse leider nicht aus, weiß hier evtl jemand Rat?

VIele Grüße

Schosch

Content-Key: 172011

Url: https://administrator.de/contentid/172011

Printed on: April 16, 2024 at 06:04 o'clock

Member: bastla
bastla Aug 24, 2011 at 14:36:01 (UTC)
Goto Top
Hallo schosch!

Um die Antwort im Detailgrad an die Frage anzupassen: Um aus der aktuellen Tabelle die Spalte D als Werte in das aktuelle Blatt der geöffneten "Mappe2" in die Spalte B zu kopieren:
Sub Kopieren()
Columns("D:D").Copy  
Workbooks("Mappe2.xlsx").ActiveSheet.Range("B1").PasteSpecial xlPasteValues  
Application.CutCopyMode = False
End Sub
Grüße
bastla
Member: schosch
schosch Aug 24, 2011 at 14:49:35 (UTC)
Goto Top
Danke für die Antwort.

Hast Du vielleicht noch einen Tipp wie ich das schreiben kann, damit automatisch beim Schließen der vollständigen Datei mehrere Arbeitsblätter in die "kastrierte" Datei kopiert werden?

Viel Grüße

Schosch
Member: bastla
bastla Aug 24, 2011 at 15:10:17 (UTC)
Goto Top
Hallo schosch!

Im VBA-Editor findest Du im Projekt-Explorer (links oben) für jede geöffnete Mappe unter "Microsoft Excel-Objekte" den Eintrag "DieseArbeitsmappe" - nach einem Doppelklick darauf kannst Du im linken Dropdown anstelle von "Allgemein" den Eintrag "Workbook" auswählen und siehst dann im rechten Dropdown die zugehörigen Ereignisse. Automatisch wird ein "Private Sub Workbook_Open()" erstellt; das kannst Du, wenn nicht benötigt, samt dem zugehörigen "End Sub" löschen. Für Dein Vorhaben geeignet sollte "BeforeClose" sein.

Grüße
bastla