Ein immer wieder beliebtes Thema: Zusammenführen von Werten aus mehreren anderen Arbeitsmappen / Dateien.
Hierzu habe ich ein kleines Beispiel geschrieben. Einfach entsprechend anpassen und schon haben Sie
eine Automatisierung Ihres Sammelvorgangs realisiert.
Option Explicit
' ************************************************************************************************
' Autor/en: http://www.online-vba.de - Marc Wershoven
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von www.online-vba.de!
' Original-Quelltext: www.online-vba.de/vba_datensammeln4.php
' ************************************************************************************************
Sub MWEinzelneDatenAusMehrerenDateienEinlesen()
Dim oTargetBook As Object
Dim oSourceBook As Object
Dim sDatei As String
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
'Schritt 1: Zieldatei festlegen
Set oTargetBook = ActiveWorkbook
'Schritt 2: Datei festlegen, öffnen und Daten übertragen
'Diesen Schritt so oft kopieren, bis alle übertragungen gemacht wurden
sDatei = "C:\TEST\Sammlung\Beispiel1.xlsx"
Set oSourceBook = Workbooks.Open(sDatei, False, True) 'nur lesend öffnen
'übertragungen von einzelnen Zellen:
'Aus der Quelldatei wird der Inhalt der Zelle A1 (1, 1) von Tabelle1
'in die Zieldatei auf Tabelle1 in Zelle A1 (1, 1) kopiert.
oTargetBook.Sheets("Tabelle1").Cells(1, 1).Value = _
oSourceBook.Sheets("Tabelle1").Cells(1, 1).Value
'Aus der Quelldatei wird der Inhalt der Zelle G2 (2, 7) von Tabelle2
'in die Zieldatei auf Tabelle1 in Zelle B1 (1, 2) kopiert.
oTargetBook.Sheets("Tabelle1").Cells(1, 2).Value = _
oSourceBook.Sheets("Tabelle2").Cells(2, 7).Value
'Aus der Quelldatei wird der Inhalt der Zelle C32 (32, 3) von Tabelle3
'in die Zieldatei auf Tabelle1 in Zelle C1 (1, 3) kopiert.
oTargetBook.Sheets("Tabelle1").Cells(1, 3).Value = _
oSourceBook.Sheets("Tabelle3").Cells(32, 3).Value
oSourceBook.Close False 'nicht speichern
'hier einfach weitere Schritte analog zu Schritt 2 einfügen, wenn mehrere Dateien
'verarbeitet werden sollen...
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
'Fertigmeldung
MsgBox "Fertig!", vbInformation + vbOKOnly, "HINWEIS!"
'Variablen aufräumen
Set oTargetBook = Nothing
Set oSourceBook = Nothing
End Sub
Autor: Marc Wershoven (2013)
Für alle Nicht-Programmierer gibt es selbstverständlich auch ein komplett fertiges Tool, welches Sie - ohne programmieren zu können -
flexibel auf Ihre Bedürfnisse adaptieren können. Probieren Sie es doch einfach aus!
Zum WershovenOnline® DatenSammlerTool
VBA Programmierer gesucht?
http://www.WershovenOnline.de
Sie haben beispielsweise eine Frage zu einer Ihrer eigenen Makroprogrammierungen in VBA? Oder Sie suchen Unterstützung und Informationen über eine bestimmte Microsoft® Excel® Formel? Bei nahezu allen Fragen und Problemen rund um Microsoft® Office und VBA Makros steht Ihnen unser individueller Quick E-Mail Support zur Verfügung. Einfach, schnell und unkompliziert Ihre Frage in einer E-Mail formulieren, mit oder ohne Screenshots oder einer Beispieldatei absenden und kurze Zeit später haben Sie eine vollständige Lösung inkl. ausführlicher Erklärung vom Profi in Ihrem Postfach!
Zusätzlich besteht die Option, dass wir uns mittels Fernwartung (selbstverständlich nach Ihrem Einvertändnis) direkt "live" mit Ihnen zusammen an Ihrem Bildschirm gemeinsam Fragen und Problemstellungen anschauen und lösen können!
Weitere Informationen zu diesem kostenpflichtigen Angebot finden Sie auf der Anbieterseite von WershovenOnline® auf www.wershovenonline.de.
Zum Anbieter des Quick-E-Mail-Support...