Werte gezielt aus Dateien sammeln
Ausgangslage - Was tut dieser Code-Schnipsel?
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 Sammelvorganges realisiert.
Ergebnisse statt Aufwand & Arbeit?
Wir liefern Ergebnisse - Schicken Sie uns kurz Ihre Datei und Ihre Wünsche; wir integrieren den notwendigen Code professionell, beheben ggf. vorhandene Fehler, machen optional ein Code-Review, liefern bei Bedarf Performance-Optimierungen & setzen gewünschte Erweiterungen effizient für Sie um (und das zum Festpreis nach kurzer Sichtung).
Express-Service beauftragen
Der Quelltext
Option Explicit
' Original-Quelltext unter: https://www.online-vba.de/werte-gezielt-aus-dateien-sammeln
' Express-Hilfe für VBA unter https://www.online-vba.de/vba-expresshilfe
' Es gelten die Nutzungsbedingungen von Online-VBA.de
Public Sub OVBAde_EinzelneDatenAusMehrerenDateienEinlesen()
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
Das könnte Sie auch interessieren:
Von der Ist-Analyse bis zur Roadmap: Unsere Digitalisierungsberatung liefert priorisierte Maßnahmen mit klarer Wirtschaftlichkeitsbewertung. Mit der Excel-Migration machen Sie Ihre Lösung langfristig wartbar und 64-Bit-fähig.
Anmerkungen und Hinweise
Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2013.
Die Nutzung erfolgt auf eigene Gefahr.
Bitte denken Sie immer zuerst an eine ausreichende Datensicherung.
Wir können keinen kostenlosen Support anbieten.
Es gelten unsere Nutzungsbedingungen.
