Office: Mehrere Excel Dateien zu einer zusammenführen

Helfe beim Thema Mehrere Excel Dateien zu einer zusammenführen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Tag, ich hab folgende Angelegenheit. Aus mehreren Excel Dateien sollen bestimmte Informationen herausgenommen werden und zu einem Excel File... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von RookieVBA123, 25. März 2016.

  1. Mehrere Excel Dateien zu einer zusammenführen


    Guten Tag,

    ich hab folgende Angelegenheit. Aus mehreren Excel Dateien sollen bestimmte Informationen herausgenommen werden und zu einem Excel File zusammengefasst werden. Allerdings habe ich selbst noch nicht weiter mit VBA programmiert. Allerdings durch Java und C/C++ konnte ich mir einiges erschließen.

    Dennoch möchte mein Programm nicht laufen und wirft mir dauernd einen Laufzeitfehler '9', wodurch ich das Programm auf Funktion nicht einmal testen kann. Diverse Suchanfragen in Google führten bis dato auch zu keiner passenden Lösung.

    Im folgenden befindet sich mein Programm und hoffe, dass ihr mir helfen könnt, das Programm zum Laufen zu bringen.

    Gruß


    Code:
    :)
     
    RookieVBA123, 25. März 2016
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    ich würde das ja prüfen, aber ich habe keine Ahnung was Du mit Deinem Beitrag gemacht hast, das man den Code nicht kopieren kann.
    Vielleicht Datei verlinken?

    Ergänzung

    jetzt geht es mit einmal.
     
    Hajo_Zi, 26. März 2016
    #2
  3. Hajo_Zi
    Hajo_Zi Erfahrener User
    es fehlt
    Dim J As Long, I As Long
    bei mir wird es kompiliert.
    Testen kann ich es nicht, da keine Ahnung was für eine Datei und was für ein Inhalt.
     
    Hajo_Zi, 26. März 2016
    #3
  4. Mehrere Excel Dateien zu einer zusammenführen

    Erstmal Danke für Ihre Hilfe.

    Trotzdem wirft mir das Programm beim Compilen immer noch einen Laufzeitfehler '9' bei "Set Quelle = Workbooks.Item(2).Worksheets(J)", wodurch das Programm nicht starten will

    Gruß
    RookieVBA123

    Hier nochmal der Code:

    Private Sub CommandButton1_Click()
    Dim fs, f, f1, fc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("C:\Users\admin\Desktop\MeineDaten\Berichte\")
    Set fc = f.Files

    Dim a, b

    a = 2

    For Each f1 In fc

    Workbooks.Open "C:\Users\admin\Desktop\MeineDaten\Berichte\" & f1.Name

    Dim Ziel, Quelle As Worksheet

    Set Ziel = Workbooks.Item(1).Worksheets(1)

    Ziel.Cells(1, 1) = "Datum"
    Ziel.Cells(1, 2) = "Name"
    Ziel.Cells(1, 3) = "Vorname"
    Ziel.Cells(1, 4) = "BerichtNr."
    Ziel.Cells(1, 5) = "Seriennummer"
    Ziel.Cells(1, 6) = "Art"
    Ziel.Cells(1, 7) = "Anzahl"
    Ziel.Cells(1, 8) = "Kontrolleur"
    Ziel.Cells(1, 9) = "Gueltigkeit"
    Ziel.Cells(1, 10) = "Grenze"
    Ziel.Cells(1, 11) = "Beteiligte"
    Ziel.Cells(1, 12) = "Anzahl Beteiligte" 'Bezeichnungen fuer erste Zeile
    Range("B1").Select
    ActiveWindow.FreezePanes = True 'Einfrieren der ersten Zeile

    For j = 1 To Worksheets.Count

    Set Quelle = Workbooks.Item(2).Worksheets(j)


    b = 0

    'While Quelle.Cells(b + 18, 1) ""



    For i = 18 To 49

    If (Quelle.Cells(21, 37).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 26) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 25) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 32) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 31) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 33, 26) '"Kontrolleur" aus der Quelldatei
    Ziel.Cells(a, 6) = Quelle.Cells(b + 33, 25) '"Gueltigkeit" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 33, 32) '"Grenze" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 33, 31) '"Beteiligte" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 23, 37) '"Anzahl Beteiligte" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    ElseIf (Quelle.Cells(26, 13).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 14) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 13) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 20) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 19) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 28, 13) '"Kontrolleur" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    ElseIf (Quelle.Cells(22, 25).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 14) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 13) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 20) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 19) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 37, 14) '"Kontrolleur" aus der Quelldatei
    Ziel.Cells(a, 6) = Quelle.Cells(b + 37, 13) '"Gueltigkeit" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 37, 20) '"Grenze" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 37, 19) '"Beteiligte" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 25, 25) '"Anzahl Beteiligte" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    Else
    Ziel.Cells(a, 1) = "Fehler"
    Ziel.Cells(a, 2) = "Fehler"
    Ziel.Cells(a, 3) = "Fehler"
    Ziel.Cells(a, 4) = "Fehler"
    Ziel.Cells(a, 5) = "Fehler"
    Ziel.Cells(a, 6) = "Fehler"
    Ziel.Cells(a, 7) = "Fehler"
    Ziel.Cells(a, 8) = "Fehler" 'Zeige "Fehler" an
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet
    End If

    Next i 'naechste Zeile im Worksheet
    Next j 'naechstes Worksheet


    Set Ziel = Nothing
    Set Quelle = Nothing

    Workbooks.Item(2).Close (False)

    Next
    End Sub
     
    RookieVBA123, 27. März 2016
    #4
  5. Hajo_Zi
    Hajo_Zi Erfahrener User
    gut, Du möchtest die Datei nicht verlinken. Dann mußt Du es wohl selber lösen.
    Ich bin raus, da ich nicht auf fremde Rechner schaue.
     
    Hajo_Zi, 27. März 2016
    #5
  6. Hallo,

    versuch mal:
    Code:
    Gruß
    Aloys
     
    aloys78, 27. März 2016
    #6
  7. Hallo Aloys78,

    wenn ich das wie von Ihnen beschrieben ausführe, kommt folgender Fehler:

    "Fehler beim Kompilieren:

    Methode oder Datenobjekt nicht gefunden".

    Ich bin am Verzweifeln!*rolleyes.gif*

    Hier nochmal der angepasste Code:

    Sub CommandButton1_Click()
    Dim fs, f, f1, fc, s, J As Long, I As Long
    Dim Ziel As Worksheet, Quelle As Worksheet
    Dim a, b
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("C:\Users\admin\Desktop\MeineDaten\Berichte\")
    Set fc = f.Files



    a = 2

    For Each f1 In fc

    Workbooks.Open "C:\Users\admin\Desktop\MeineDaten\Berichte\" & f1.Name




    Set Ziel = Workbooks.Worksheets(1)

    Ziel.Cells(1, 1) = "Datum"
    Ziel.Cells(1, 2) = "Name"
    Ziel.Cells(1, 3) = "Vorname"
    Ziel.Cells(1, 4) = "BerichtNr."
    Ziel.Cells(1, 5) = "Seriennummer"
    Ziel.Cells(1, 6) = "Art"
    Ziel.Cells(1, 7) = "Anzahl"
    Ziel.Cells(1, 8) = "Kontrolleur"
    Ziel.Cells(1, 9) = "Gueltigkeit"
    Ziel.Cells(1, 10) = "Grenze"
    Ziel.Cells(1, 11) = "Beteiligte"
    Ziel.Cells(1, 12) = "Anzahl Beteiligte" 'Bezeichnungen fuer erste Zeile
    Range("B1").Select
    ActiveWindow.FreezePanes = True 'Einfrieren der ersten Zeile

    For j = 1 To Worksheets.Count

    Set Quelle = Workbooks.Item(2).Worksheets(j)


    b = 0

    'While Quelle.Cells(b + 18, 1) ""



    For i = 18 To 49

    If (Quelle.Cells(21, 37).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 26) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 25) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 32) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 31) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 33, 26) '"Kontrolleur" aus der Quelldatei
    Ziel.Cells(a, 6) = Quelle.Cells(b + 33, 25) '"Gueltigkeit" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 33, 32) '"Grenze" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 33, 31) '"Beteiligte" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 23, 37) '"Anzahl Beteiligte" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    ElseIf (Quelle.Cells(26, 13).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 14) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 13) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 20) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 19) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 28, 13) '"Kontrolleur" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    ElseIf (Quelle.Cells(22, 25).Value = "Anzahl Beteiligte") Then
    Ziel.Cells(a, 1) = Quelle.Cells(9, 11) '"Datum" aus der Quelldatei
    Ziel.Cells(a, 2) = Quelle.Cells(7, 11) '"Name" aus der Quelldatei
    Ziel.Cells(a, 3) = Quelle.Name '"Vorname" aus der Quelldatei
    Ziel.Cells(a, 4) = Quelle.Cells(b + 14, 14) '"BerichtNr." aus der Quelldatei
    Ziel.Cells(a, 5) = Quelle.Cells(b + 14, 13) '"Seriennummer" aus der Quelldatei"
    Ziel.Cells(a, 6) = Quelle.Cells(b + 14, 20) '"Art" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 14, 19) '"Anzahl" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 37, 14) '"Kontrolleur" aus der Quelldatei
    Ziel.Cells(a, 6) = Quelle.Cells(b + 37, 13) '"Gueltigkeit" aus der Quelldatei
    Ziel.Cells(a, 7) = Quelle.Cells(b + 37, 20) '"Grenze" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 37, 19) '"Beteiligte" aus der Quelldatei
    Ziel.Cells(a, 8) = Quelle.Cells(b + 25, 25) '"Anzahl Beteiligte" aus der Quelldatei
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet

    Else
    Ziel.Cells(a, 1) = "Fehler"
    Ziel.Cells(a, 2) = "Fehler"
    Ziel.Cells(a, 3) = "Fehler"
    Ziel.Cells(a, 4) = "Fehler"
    Ziel.Cells(a, 5) = "Fehler"
    Ziel.Cells(a, 6) = "Fehler"
    Ziel.Cells(a, 7) = "Fehler"
    Ziel.Cells(a, 8) = "Fehler" 'Zeige "Fehler" an
    b = b + 1 'b wird um 1 erhöht für das naechste Worksheet
    a = a + 1 'a wird um 1 erhöht für das naechste Worksheet
    End If

    Next i 'naechste Zeile im Worksheet
    Next j 'naechstes Worksheet


    Set Ziel = Nothing
    Set Quelle = Nothing

    Workbooks.Item(2).Close (False)

    Next
    End Sub
     
    RookieVBA123, 27. März 2016
    #7
  8. Mehrere Excel Dateien zu einer zusammenführen

    Hallo,

    Was steht denn in f1 ? Ist f1 ein Dateiname ?
    Teste mal das Ergebnis mit MsgBox !

    Code:
    Gruß
    Aloys
     
    aloys78, 27. März 2016
    #8
  9. In der MessageBox kommt "2010-12-02 Bericht Nr.1.xls" vor. Sprich der erste Bericht.

    Gruß
    RookieVBA123
     
    RookieVBA123, 27. März 2016
    #9
  10. Hallo,

    dann ersetze mal deine folgende Anweisung durch
    Set Ziel = ActiveWorkbook.Worksheets(1)

    Gruß
    Aloys
     
    aloys78, 27. März 2016
    #10
  11. Moin,

    mir scheint die Anweisung
    Code:
    mehr als unglücklich zu sein - damit wird die erste Datei im Verzeichnis geöffnet. Welche in der Collection als erste gefunden wird, weiß aber niemand.

    Gruß Ralf
     
    drambeldier, 27. März 2016
    #11
  12. Moin,

    mit ein paar kleinen Änderungen läuft es, halt ohne Daten, alle Felder mit "Fehler"

    - Option Explicit eingefügt
    - Zähler i und j deklariert
    - Quellen in ein eigenes Verzeichnis
    - Ziel aus der Schleife rausgenommen, es gibt ja nur eines
    - Inkrement a, b aus der Schleife herausgezogen, passiert immer

    Schau mal, ob's Dir taugt.

    Gruß
    Ralf
     
    drambeldier, 27. März 2016
    #12
  13. Mehrere Excel Dateien zu einer zusammenführen

    Hallo drambeldier,

    erst einmal vielen Dank für die Hilfe.
    Ich will mein Problem nochmal genauer erläutern.

    In dem Quellordner liegen mehrere .xls Dateien, aus denen gewisse Daten aus allen Sheets aus bestimmten Zellen in eine separate Excel Zieldatei erzeugt werden sollen. (Siehe If Anweisungen).

    Wie gebe ich also den Pfad für alle Exceldateien im Verzeichnis

    "C:\Users\admin\Desktop\MeineDaten\Berichte\" an?

    Alle Dateien sind *.xls Dateien.

    Gruß
    VBARookie123

    Code:
     
    RookieVBA123, 28. März 2016
    #13
  14. OrdnerQuelle = "C:\Users\admin\Desktop\MeineDaten\Berichte\"

    Mir ist allerdings rätselhaft, warum Du fragst :-(
     
    drambeldier, 29. März 2016
    #14
  15. Hallo,

    ich bin am Verzweifeln. Es will einfach nicht funktioneren.

    Ich bin mit meinen Ideen am Ende

    Die Zieldatei "Ziel" will auch nicht die erste Zeile fixieren und einen Autofilter für diese festlegen.

    Es öffnet dauernd nur die erste Datei der Quelle, wenn ich das Programm starte und sonst passiert einfach nichts -.-
     
    RookieVBA123, 29. März 2016
    #15
Thema:

Mehrere Excel Dateien zu einer zusammenführen

Die Seite wird geladen...
  1. Mehrere Excel Dateien zu einer zusammenführen - Similar Threads - Excel Dateien zusammenführen

  2. Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben

    in Microsoft Excel Hilfe
    Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben: Hallo Zusammen, Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben, so dass die dritte Person die folgenden Bedingungen erfüllt: Die dritte Person kann nur die freigegebenen...
  3. Import einer Excel Datei in den Kalender

    in Microsoft Outlook Hilfe
    Import einer Excel Datei in den Kalender: Ich habe einen *.cvs Datei erstellt und möchte diese in den Outlook Kalender importieren. Wenn ich den Import starte, stellt Outlook einen Fehler fest und startet neu. Woran kann das liegen?
  4. Mehrere Excel Dateien zu einer zusammenführen

    in Microsoft Excel Hilfe
    Mehrere Excel Dateien zu einer zusammenführen: Hallo, Ich habe ca. 90 Excel Dateien, die alle eine Tabelle mit genau den selben Bezeichnungen enthalten (Material, Werk, Bezeichnung, Stückzahl,...). Nun möchte ich diese 90 Dateien zu einer...
  5. Verschiedene Excel-Dateien in einer Arbeitsmappe als Excel-Sheets zusammenführen

    in Microsoft Excel Hilfe
    Verschiedene Excel-Dateien in einer Arbeitsmappe als Excel-Sheets zusammenführen: Hallo, gibt es ein Makro oder eine andere Möglichkeit, dass man verschiedene Excel-Dateien in einer Excel-Datei zusammenführt? Hierbei sollen z.B. die einzelnen Dateien als extra-Sheet in einer...
  6. Mehrere Excel Dateien in ein Tabellenblatt zusammenführen

    in Microsoft Excel Hilfe
    Mehrere Excel Dateien in ein Tabellenblatt zusammenführen: Hello zusammen! Da ich leider für mein Problem über Google keine Lösung finden konnte, wende ich mich vertrauensvoll an euch... :) Meine Arbeitskollegen und ich möchten gerne jeweils eine...
  7. Tabelle aus meheren Excel-Dateien zusammenführen

    in Microsoft Excel Hilfe
    Tabelle aus meheren Excel-Dateien zusammenführen: Hallo! Ich beschäftige mich schon seit geraumer Zeit mit einer Problemstellung in VBA und benötige eure Hilfe: Bin in VBA ein kompletter Neuling :confused: Ich versuche bestimmte Bereiche...
  8. Excel/Calc: 200 Excel Dateien zu einer Tabelle zusammenführen

    in Microsoft Excel Hilfe
    Excel/Calc: 200 Excel Dateien zu einer Tabelle zusammenführen: Hallo, wie kann ich aus 200 Excel Dateien mit fortlaufendem Namen (Book1 bis Book200) eine einzige Tabelle erstellen? Die in den einzelnen Dateien enthaltenen Tabellen sind sehr klein, zwischen 2...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden