Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehreren Dateien zu einer zusammenfassen

mehreren Dateien zu einer zusammenfassen
25.04.2016 19:12:21
nikelwerner
Hallo zusammen,
hab bzgl. dieses Themas schon einmal um Hilfe gebeten, aufgrund meiner mangelnden VBA-Kenntnisse jedoch keinen Erfolg gehabt... Deshalb versuch ich nun nochmal genauer zu werden.
Ausgangslage ist die, dass ich 30 verschiedene Dateien habe, die vom Aufbau her zwar alle gleich sind, allerdings mit verschiedenen Werten gefüllt.
Außerdem liegen diese leider in unterschiedlichen Orten und Ordnern.
Meine Aufgabe ist es nun die verschiedenen Dateien zusammen zu führen um sie zu vergleichen. Jedoch immer nur eine Zeile von jeder Datei und die nachfolgenden sollen Dann darunter geschrieben usw... Die Zeile der Quelldateien geht immer von D40 bis AZ40.
Habt ihr eine Idee wie ich das lösen könnte?
Eine beispielhafte Datei kann ich leider nicht hochladen, da das Problem beruflich ist.
Ich stelle es mir vielleicht so vor, dass man einmal für jede Datei den Pfad angibt und der jeweiligen Zeile in der Zieldatei zuweist.(Vielleicht sogar in einem Pfadfenster wie man es z.b. beim Speichern von Dateien gewohnt ist) Anschließend macht man einen Button "aktualisieren" der bei Betätigung einmal die Einlese-Funktion für alle Datei ausführt.
Ich hoffe Ihr könnt mir weiterhelfen, bin langsam echt am verzweifeln...:/
Vielen Dank schon mal im voraus :)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehreren Dateien zu einer zusammenfassen
25.04.2016 21:42:49
Fennek
Hallo,
Ein erster Versuch:

Sub Nickelwerner()
Dim WBQ as workbook 'Quelle
Dim WSZ as worksheet 'Ziel
Set wsz = activesheet
sPath = "c:\tmp\" '>>>>>>> anpassen
sFile = dir(sPath & "*.xlsx")
Do while sFile  ""
lr = wsz.cells(rows.count, 1).end(xlup).row + 1
Set wbq = workbooks.open(sPath & sFile)
Wbq.sheets(1).range("D40:AZ40").copy wsz.cells(lr,1)
Wbq.close 0
sFile = dir
Loop
End sub
Mfg

AW: mehreren Dateien zu einer zusammenfassen
25.04.2016 23:10:52
Falo
Hallo,
wenn du das Makro anklickst geht ein Fenster auf, da kannst Du die Dateien anklicken die Du Kopiert haben willst diese werden dann in die Tabelle Kopiert. Vorraussetzung ist das die Strukturen der Dateien alle gleich sind
LG
Olaf
  • 
    Public Sub Daten_mehrerer_Dateien_zusammenfuehren()
    On Error GoTo errExit
    Dim WBQ As Workbook
    Dim WBZ As Workbook
    Dim varDateien As Variant
    Dim lngAnzahl As Long
    Dim lngLastQ As Long
    Set WBZ = ActiveWorkbook
    'Altdaten auf Zielblatt löschen
    WBZ.Worksheets(1).Range("A2:IV65536").ClearContents
    varDateien = _
    Application.GetOpenFilename("Datei (*.xls),*.xls", False, "Bitte gewünschte Datei(en) markieren" _
    , False, True)
    With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    End With
    For lngAnzahl = LBound(varDateien) To UBound(varDateien)
    Set WBQ = Workbooks.Open(Filename:=varDateien(lngAnzahl))
    lngLastQ = WBQ.Worksheets(1).Range("A65536").End(xlUp).Row
    WBQ.Worksheets(1).Range("A2:Z" & lngLastQ).Copy _
    Destination:=WBZ.Worksheets(1).Range("A" & WBZ.Worksheets(1).Range("A65536").End(xlUp).Row +  _
    1)
    WBQ.Close
    Next
    With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    End With
    MsgBox "Es wurden " & UBound(varDateien) & " Dateien zusammengefügt.", 64
    Exit Sub
    errExit:
    With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    End With
    If Err.Number = 13 Then
    MsgBox "Es wurde keine Datei ausgewählt"
    Else
    MsgBox "Es ist ein Fehler aufgetreten!" & vbCr _
    & "Fehlernummer: " & Err.Number & vbCr _
    & "Fehlerbeschreibung: " & Err.Description
    End If
    End Sub
    

  • Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    25.04.2016 23:11:03
    Falo
    Hallo,
    wenn du das Makro anklickst geht ein Fenster auf, da kannst Du die Dateien anklicken die Du Kopiert haben willst diese werden dann in die Tabelle Kopiert. Vorraussetzung ist das die Strukturen der Dateien alle gleich sind
    LG
    Olaf
  • 
    Public Sub Daten_mehrerer_Dateien_zusammenfuehren()
    On Error GoTo errExit
    Dim WBQ As Workbook
    Dim WBZ As Workbook
    Dim varDateien As Variant
    Dim lngAnzahl As Long
    Dim lngLastQ As Long
    Set WBZ = ActiveWorkbook
    'Altdaten auf Zielblatt löschen
    WBZ.Worksheets(1).Range("A2:IV65536").ClearContents
    varDateien = _
    Application.GetOpenFilename("Datei (*.xls),*.xls", False, "Bitte gewünschte Datei(en) markieren" _
    , False, True)
    With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    End With
    For lngAnzahl = LBound(varDateien) To UBound(varDateien)
    Set WBQ = Workbooks.Open(Filename:=varDateien(lngAnzahl))
    lngLastQ = WBQ.Worksheets(1).Range("A65536").End(xlUp).Row
    WBQ.Worksheets(1).Range("A2:Z" & lngLastQ).Copy _
    Destination:=WBZ.Worksheets(1).Range("A" & WBZ.Worksheets(1).Range("A65536").End(xlUp).Row +  _
    1)
    WBQ.Close
    Next
    With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    End With
    MsgBox "Es wurden " & UBound(varDateien) & " Dateien zusammengefügt.", 64
    Exit Sub
    errExit:
    With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    End With
    If Err.Number = 13 Then
    MsgBox "Es wurde keine Datei ausgewählt"
    Else
    MsgBox "Es ist ein Fehler aufgetreten!" & vbCr _
    & "Fehlernummer: " & Err.Number & vbCr _
    & "Fehlerbeschreibung: " & Err.Description
    End If
    End Sub
    

  • Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    26.04.2016 15:32:59
    nikelwerner
    Danke schonmal für die schnelle Hilfe :)
    Ich habe jedoch das Problem dass in der entsprechenden Zeile der Quelldateien eine Funktion bezieht. Deswegen schreibt er meistens einfach eine Null rein.
    Außerdem liegen die ganzen Dateien auf so vielen verschiedenen Ordnern, dass es nicht funktioniert einfach alle einmal auszuwählen...
    Könnte man keine Funktion schreiben, der man als Input den entsprechenden Pfad gibt?
    Dann könnte man bspw. in eine Zelle der Zieldatei schreiben:
    ZeileAusExcelDateiAuslesen(O\Beispiel\Test.xlsx )
    'nun soll aus diesem Pfad die bestimmte Zeile in die Zielzeile rechts neben der Zelle wo die Funktion drin steht kopiert werden
    So könnte man einmal alle Funktionen mit den entsprechenden Pfaden bestücken und durch den "aktualisieren"-Button alles auf den neuesten Stand bringen...
    Danke für eure Hilfe... kriegs nicht gebacken...:(

    Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    26.04.2016 16:00:48
    nikelwerner
    Danke schonmal für die schnelle Hilfe :)
    Ich habe jedoch das Problem dass in der entsprechenden Zeile der Quelldateien eine Funktion bezieht. Deswegen schreibt er meistens einfach eine Null rein.
    Außerdem liegen die ganzen Dateien auf so vielen verschiedenen Ordnern, dass es nicht funktioniert einfach alle einmal auszuwählen...
    Könnte man keine Funktion schreiben, der man als Input den entsprechenden Pfad gibt?
    Dann könnte man bspw. in eine Zelle der Zieldatei schreiben:
    ZeileAusExcelDateiAuslesen(O\Beispiel\Test.xlsx )
    'nun soll aus diesem Pfad die bestimmte Zeile in die Zielzeile rechts neben der Zelle wo die Funktion drin steht kopiert werden
    So könnte man einmal alle Funktionen mit den entsprechenden Pfaden bestücken und durch den "aktualisieren"-Button alles auf den neuesten Stand bringen...
    Danke für eure Hilfe... kriegs nicht gebacken...:(

    Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    26.04.2016 16:47:28
    Piet
    Hallo nikelwerner
    ich sehe das es zu diesem Thread schon viele Antworten gibt.
    Dann gehe ich normalerweise nicht hinein, weil es gute Profis gibt.
    mich stört ein wenig dieser Satz: - kriegs nicht gebacken...:(
    Bevor du die Flinte ins Korn wirft schaue ich mir die Sache auch noch einmal an.
    Ich bin kein Profi, vielleicht guter Amateur, aber bekannt für meine Hartnaeckigkeit.
    Ich bearbeite zur Zeit aber noch drei Thread und brauche 1-2 Tage Zeit zum ansehen.
    Aufgeben gilt nicht! Du bist hier im Herber Forum ...
    Geduld, schauen wir mal ob wir gemeinsam eine Lösung finden.
    mfg Piet

    Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    27.04.2016 15:03:24
    nikelwerner
    Habe nun nochmal probiert mein Sytem zu lösen..
    Erst bin ich zu dieser Lösung gekommen:
    ______________________________
    Sub Einlesen(ByVal pfad As String)
    Dim Ziel As Worksheet
    Dim Quelle As Worksheet
    Application.ScreenUpdating.Updating = False
    Set Ziel = ActiveWorkbook.ActiveSheet
    Set Quelle = Workbooks.Open(Filename:=pfad).Worksheets(1)
    Quelle.Range(Cells(40, 4), Cells(40, 72)).Copy
    Quelle.Parant.Close
    Set Quelle = Nothing
    Set Ziel = Nothing
    Sheets(ActiveSheet).Cells(ActiveCells).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets(ActiveSheet).Cells(ActiveCells).PasteSpecial Paste:=xlPasteValues
    ____________________________
    Dies hat allerdings nicht geschafft, da ich es nicht geschafft habe die Funktion aufzurufen..
    Dachte eigtl ich könnte einfach in die Zelle schreiben: "=Einlesen(O\Ordner1\Unterordner\Quelldatei.xlsx"
    Konnte die Funktion aber nicht auswählen

    Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    27.04.2016 15:05:35
    nikelwerner
    Deswegen habe ich dann diesen Code geschrieben:
    ______________________________________________________
    Sub Test123()
    Dim pfad As Workbook
    Dim Ziel As Worksheets
    Set pfad = Application.GetOpenFilename
    Set Ziel = ActiveSheet
    With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    End With
    pfad.Worksheets(1).Range("D40:CT40").Copy
    Ziel.Workseheets(1).Cells("G5").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone,  _
    SkipBlanks:=False, Transpose:=False
    Ziel.Workseheets(1).Cells("G5").PasteSpecial Paste:=xlPasteValues
    pfad = Nothing
    End Sub
    

    ________________________________________________
    Das Fenster zum Datei auswählen öffnet sich zwar aber sobald ich dann eine auswähle kommt der Laufzeitfehler '424'...:/
    Seht Ihr einen Fehler? bzw. muss ich den oberen Code einfach anders aufrufen?
    Vielen Dank :)

    Anzeige
    AW: mehreren Dateien zu einer zusammenfassen
    28.04.2016 19:53:39
    Piet
    Hallo nikelwerner,
    anbei eine Beispieldatei als 1. Lösung. Ich bin aber noch nicht fertig.
    Mein Gedanke war die Aufgabe in zwei Teile zu zerlegen, der erste ist hier.
    Bei diesem Programm geht es darum zuerst einmal die 30 Daten in Tabelle2 aufzulisten,
    damit man nicht jede Datei einzeln über einen Eingabe Dialog öffnen muss. (s. Olaf)
    Das ist üblich, aber in der Praxis sehr unpraktisch. Deshalb meine Version dazu.
    https://www.herber.de/bbs/user/105325.xls
    Was noch geklaert und bearbeitet werden muss ist das kopieren in Tabelle2.
    Hierzu verweise ich auf folgenden Thread im Forum, Weil da auch Tabellen
    verglichen werden mussten. Da gibt es bereits eine Lösung von mir, die ggf.
    nur auf diesen Thread angepasst werden muss.
    Einfach mal in die Beispiele reinschauen, ob wir davon was verwenden können.
    mfg Piet
    Arbeitsmappen vergleichen und zusammenführen - Reinhard 23.04.2016 10:46:48
    https://www.herber.de/bbs/user/105161.xlsx  - (2 Beispieldateien)
    https://www.herber.de/bbs/user/105162.xlsx  - (fast identisch, mit Differenzen)
    2. Lösung von mir
    https://www.herber.de/bbs/user/105185.xls  

    Anzeige
    AW: geschlossen oWt
    30.04.2016 13:57:28
    Piet
    ,,,

    303 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige