Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: mehrere Excel-Datei auswerten & Werte in einer Tab

mehrere Excel-Datei auswerten & Werte in einer Tab
04.04.2019 19:36:30
Andreas
Hallo liebe Forumer,
ich habe ein recht eiliges Problem, kann es aber selbst nicht lösen,
da mir das Fachwissen dazu fehlt. Mir wurde hier schon so gut geholfen.
Deswegen wende ich mich nochmal an euch Profis.
Problemstellung:
Ich habe ca. 100 Exceldateien mit je 4 Arbeitsmappen.
Nun möchte ich gerne alle Dateien öffnen und immer aus der 1sten Mappe Daten auslesen und diese in einer neuen Tabelle als Zusammenfassung speichern.
Der Aufbau der Mappe1 ist im Grunde immer gleich. Es gibt jeweils 3 Daten die ich auswerten möchte. In Zelle A17 steht ein String, in E17 steht ein String. Das Größe Problem ist der 3te Wert. Dieser befindet sich jeweils in verschiedenen Zellen. Aber immer in der Range E18:AV50. In dieser Range gibt es auch immer nur einen Wert(String) der auszulesen wäre. Eine Musterdatei könnte ich frühstens morgen dazufügen...Sorry.
Evtl. habt ihr eine gute Lösung für mein Problem parat.
Danke euch vorab.
Gruß
Andreas
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Excel-Datei auswerten & Werte in einer Tab
04.04.2019 19:40:32
Hajo_Zi
Hallo Andreas,
Kannst Du das mal erklären wie man in eine Datei 4 Excelmappen (also 4 Dateien) macht?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: mehrere Excel-Datei auswerten & Werte in einer Tab
04.04.2019 19:44:48
Andreas
Hallo Hajo,
sorry. Natürlich sind es 4 Tabellenblätter in jeder Exceldatei.
Gruß
Andreas
AW: mehrere Excel-Datei auswerten & Werte in einer Tab
04.04.2019 22:55:29
fcs
Hallo Andreas,
hier das Grundgerüst für ein Auswerte Makro.
Der Abschnitt für die variable Zelle muss ggf. angepasst werden.
LG
Franz

'Code in einem allgemeinen Modul
Sub Daten_einlesen()
Dim wkbZiel As Workbook, wksZiel As Worksheet
Dim wkbQuelle As Workbook, wksQuelle As Worksheet, ZeiZ As Long
Dim varFiles As Variant, varDatei As Variant
Dim rngZelle As Range
Dim StatusCalc As Long
Dateiauswahl:
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte auszuwertende Dateien auswählen - Mehrfachauswahl ist möglich"
.AllowMultiSelect = True
If .Show = -1 Then
Set varFiles = .SelectedItems
Else
GoTo Beenden
End If
End With
'Makrobremsen lösen
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
'Zieldatei anlegen und vorbereiten
If wkbZiel Is Nothing Then
Set wkbZiel = Application.Workbooks.Add(Template:=xlWBATWorksheet)
Set wksZiel = wkbZiel.Worksheets(1)
With wksZiel
ZeiZ = 1
'Spaltentitel
.Cells(ZeiZ, 1).Value = "Zelle A17"
.Cells(ZeiZ, 2).Value = "Zelle E17"
.Cells(ZeiZ, 3).Value = "Zelle E18-AV50"
.Cells(ZeiZ, 4).Value = "Dateiname"
End With
End If
'gewählte Dateien abarbeiten
For Each varDatei In varFiles
Set wkbQuelle = Application.Workbooks.Open(Filename:=varDatei, ReadOnly:=True)
Set wksQuelle = wkbQuelle.Sheets(1)
With wksQuelle
ZeiZ = ZeiZ + 1
wksZiel.Cells(ZeiZ, 1).Value = .Range("A17").Value
wksZiel.Cells(ZeiZ, 2).Value = .Range("E17").Value
'Zelle mit Wert in E18:AV50 suchen - diesem Abschnitt ggf. anpassen
Set rngZelle = Nothing
With .Range("E18:AV50")
'letzte Zelle mit Inhalt im Bereich
Set rngZelle = .Find(what:="*", After:=.Range("A1"), LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlPrevious)
End With
'Wert aus Zelle ggf. in Zielblatt eintragem
If Not rngZelle Is Nothing Then
wksZiel.Cells(ZeiZ, 3).Value = rngZelle.Value
End If
wksZiel.Cells(ZeiZ, 4).Value = wkbQuelle.Name
End With
wkbQuelle.Close savechanges:=False
Next
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
If .Calculation  StatusCalc Then .Calculation = StatusCalc
.EnableEvents = True
End With
If MsgBox("weitere Dateien einlesen?", vbYesNo, "Werte aus Dateien einlesen") = vbYes _
Then GoTo Dateiauswahl
'Zieltabelle formatieren
With wksZiel
.Columns.AutoFit
'Spalte mit Dateiname wieder löschen
'.Columns(4).Delete
End With
Beenden:
End Sub

Anzeige
AW: mehrere Excel-Datei auswerten & Werte in einer Tab
05.04.2019 14:14:52
Andreas
Hallo Franz,
Super. Vielen Dank.
Genauso sollte die Auswertung sein.
Klappt alles.
Danke und Gruß
Andreas
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus mehreren Excel-Dateien auswerten und in einer Tabelle zusammenfassen


Schritt-für-Schritt-Anleitung

Um Daten aus mehreren Excel-Dateien auszulesen und in einer neuen Tabelle zusammenzufassen, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub Daten_einlesen()
    Dim wkbZiel As Workbook, wksZiel As Worksheet
    Dim wkbQuelle As Workbook, wksQuelle As Worksheet, ZeiZ As Long
    Dim varFiles As Variant, varDatei As Variant
    Dim rngZelle As Range
    Dim StatusCalc As Long

    Dateiauswahl:
    With Application.FileDialog(msoFileDialogOpen)
        .Title = "Bitte auszuwertende Dateien auswählen - Mehrfachauswahl ist möglich"
        .AllowMultiSelect = True
        If .Show = -1 Then
            Set varFiles = .SelectedItems
        Else
            GoTo Beenden
        End If
    End With

    ' Makrobremsen lösen
    With Application
        .ScreenUpdating = False
        StatusCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
    End With

    ' Zieldatei anlegen und vorbereiten
    If wkbZiel Is Nothing Then
        Set wkbZiel = Application.Workbooks.Add(Template:=xlWBATWorksheet)
        Set wksZiel = wkbZiel.Worksheets(1)
        With wksZiel
            ZeiZ = 1
            ' Spaltentitel
            .Cells(ZeiZ, 1).Value = "Zelle A17"
            .Cells(ZeiZ, 2).Value = "Zelle E17"
            .Cells(ZeiZ, 3).Value = "Zelle E18-AV50"
            .Cells(ZeiZ, 4).Value = "Dateiname"
        End With
    End If

    ' Gewählte Dateien abarbeiten
    For Each varDatei In varFiles
        Set wkbQuelle = Application.Workbooks.Open(Filename:=varDatei, ReadOnly:=True)
        Set wksQuelle = wkbQuelle.Sheets(1)
        With wksQuelle
            ZeiZ = ZeiZ + 1
            wksZiel.Cells(ZeiZ, 1).Value = .Range("A17").Value
            wksZiel.Cells(ZeiZ, 2).Value = .Range("E17").Value

            ' Zelle mit Wert in E18:AV50 suchen
            Set rngZelle = Nothing
            With .Range("E18:AV50")
                ' letzte Zelle mit Inhalt im Bereich
                Set rngZelle = .Find(what:="*", After:=.Range("A1"), LookIn:=xlValues, _
                lookat:=xlWhole, searchdirection:=xlPrevious)
            End With

            ' Wert aus Zelle ggf. in Zielblatt eintragen
            If Not rngZelle Is Nothing Then
                wksZiel.Cells(ZeiZ, 3).Value = rngZelle.Value
            End If
            wksZiel.Cells(ZeiZ, 4).Value = wkbQuelle.Name
        End With
        wkbQuelle.Close savechanges:=False
    Next

    ' Makrobremsen zurücksetzen
    With Application
        .ScreenUpdating = True
        If .Calculation <> StatusCalc Then .Calculation = StatusCalc
        .EnableEvents = True
    End With

    If MsgBox("weitere Dateien einlesen?", vbYesNo, "Werte aus Dateien einlesen") = vbYes _
    Then GoTo Dateiauswahl

    ' Zieltabelle formatieren
    With wksZiel
        .Columns.AutoFit
    End With

Beenden:
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle Daten_einlesen aus und klicke auf Ausführen. Wähle die Excel-Dateien aus, aus denen du die Daten auslesen möchtest.

Häufige Fehler und Lösungen

  • Fehler: "Objektvariable nicht festgelegt"

    • Überprüfe, ob du die richtigen Arbeitsblätter angibst und dass die Excel-Dateien geöffnet werden können.
  • Fehler: "Keine Daten gefunden"

    • Stelle sicher, dass die Zellen A17, E17 und der Bereich E18:AV50 in den Quelldateien korrekt ausgefüllt sind.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Power Query-Funktion in Excel nutzen, um Daten aus mehreren Excel-Dateien auszulesen. Dies erfordert jedoch eine andere Herangehensweise und ist möglicherweise weniger flexibel als ein VBA-Skript.


Praktische Beispiele

Ein Beispiel für die Anwendung des Makros wäre, wenn du Finanzdaten aus mehreren Excel-Dateien auswerten möchtest. Angenommen, in jeder Datei sind verschiedene Kostenarten in den Zellen A17 und E17 eingetragen. Mit dem Makro kannst du alle relevanten Daten in einer einzigen Tabelle zusammenfassen, was die Analyse der gesamten Datenmenge erheblich erleichtert.


Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen im VBA-Code, um unerwartete Fehler abzufangen.
  • Halte deine Excel-Dateien gut organisiert, um die Datenanalyse zu erleichtern.
  • Experimentiere mit Pivot-Tabellen, um die aus mehreren Excel-Dateien gewonnenen Daten weiter auszuwerten.

FAQ: Häufige Fragen

1. Frage
Kann ich das Makro auch für andere Zellen anpassen?
Antwort: Ja, du kannst die Zellreferenzen im VBA-Code anpassen, um andere Werte auszulesen.

2. Frage
Sind die Schritte für alle Excel-Versionen gleich?
Antwort: Die Schritte sind hauptsächlich für Excel 2016 und neuere Versionen ausgelegt, können jedoch auch in älteren Versionen ähnlich sein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige