Werte gezielt aus Dateien sammeln

VBA und Makros
Codeschnipsel
Arbeitsblatt
Dateien im Verzeichnis
Dateien öffnen und schließen
Konsolidierung
Sammeln
Einsammeln
Excel

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.

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

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 Nutzungs­bedingungen.


So einfach läuft unsere VBA-Expresshilfe ab

1
Senden Sie uns Ihre Office-Datei oder Ihren VBA-Code (gerne anonymisiert) mit einer kurzen Problembeschreibung oder Ihrem Erweiterungswunsch per E-Mail.
2
Wir analysieren Ihr Anliegen schnell und schicken Ihnen umgehend (tagsüber meist innerhalb von 1-2 Stunden) ein Festpreis-Angebot.
3
Nach Ihrer Zustimmung lösen wir Ihr Problem (meist noch am gleichen Tag) oder setzen Ihre Erweiterung zuverlässig um – inklusive verständlicher Dokumentation der durchgeführten Maßnahmen.

Jetzt kontaktieren!







Mit einem * gekennzeichnete Eingabefelder sind Pflichtfelder.
Datenschutzhinweise zum Kontaktformular: Die von Ihnen im Kontaktformular bereitgestellten Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verwendet und nicht ohne Ihre Zustimmung an Dritte weitergegeben. Ihre Daten werden nur für den Zeitraum gespeichert, der zur Bearbeitung Ihrer Anfrage erforderlich ist. Weitere Hinweise zum Datenschutz finden Sie in unserer Datenschutzerklärung.
Hinweis: Für die vollständige Funktion dieser Website ist JavaScript erforderlich.
Bitte aktivieren Sie JavaScript in Ihrem Browser, um alle Inhalte und interaktiven Funktionen nutzen zu können.