Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

mehrer Excel Tabellen mit mehreren Blättern zusammenführen

Frage Microsoft Microsoft Office

Mitglied: quba

quba (Level 1) - Jetzt verbinden

17.01.2007, aktualisiert 07.02.2007, 9888 Aufrufe, 4 Kommentare

Hallo zusammen,

ich habe mehrere Excel Tabellen mit jeweils mehreren Tabellenblättern. (Tabelle 1, Tabelle 2, Tabelle 3, ....)
Jedes Tabellenblatt heißt in jeder Tabelle gleich

Nun suche ich eine Möglichkeit, alle Dateien zu einer Zusammenzuführen.

Es sollen alle Werte aller Dateien von Tabelle 1, Tabelle 2, usw. in eine neue Datei untereinander eingefügt werden und dabei natürlich die Tabellennamen beibehalten werden.

Ich hoffe es ist verständlich was ich meine.

Hat mir ja jemand ein Tool, dass das kann oder ein Makro?

Vielen Dank!

Grüße
quba
Mitglied: bastla
19.01.2007 um 13:20 Uhr
Hallo quba!

Zu Deinem eher allgemein formulierten Anliegen könnte ich folgende eher allgemein formulierte Lösung anbieten:
01.
Option Explicit 
02.
 
03.
Sub Sammle() 
04.
Const sSourcePath As String = "D:\Viele viele XLS" 
05.
Dim wbGes As Workbook, wsTarget As Worksheet 
06.
Dim wbTeil As Workbook, wsSource As Worksheet 
07.
Dim fso As Object, oFile As Object 
08.
Dim rNext As Integer, bSheetFound As Boolean 
09.
Set wbGes = ActiveWorkbook 
10.
Set fso = CreateObject("Scripting.FileSystemObject") 
11.
 
12.
'Quell-Ordner durchsuchen 
13.
For Each oFile In fso.GetFolder(sSourcePath).Files 
14.
    'nur .xls-Dateien bearbeiten 
15.
    If LCase(Right(oFile.Name, 4)) = ".xls" Then 
16.
        Application.Workbooks.Open (oFile.Path) 
17.
        Set wbTeil = ActiveWorkbook 
18.
        'alle Tabellen der Gesamt-Datei bearbeiten 
19.
        For Each wsTarget In wbGes.Worksheets 
20.
            'Tabelle auch in Teil-Datei enthalten? 
21.
            For Each wsSource In wbTeil.Worksheets 
22.
                bSheetFound = False 
23.
                If LCase(wsTarget.Name) = LCase(wsSource.Name) Then 
24.
                    bSheetFound = True 
25.
                    Exit For 
26.
                End If 
27.
            Next 
28.
            If bSheetFound Then 
29.
                'Tabelle da, Daten kopieren ... 
30.
                wbTeil.Worksheets(wsTarget.Name).Activate 
31.
                Range("A1").Select 
32.
                Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Copy 
33.
                '... und einfügen in Gesamt-Datei-Tabelle... 
34.
                wbGes.Worksheets(wsTarget.Name).Activate 
35.
                '... ab der nächsten freien Zeile 
36.
                rNext = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 
37.
                ActiveSheet.Cells(rNext, 1).Activate 
38.
                ActiveSheet.Paste 
39.
                Application.CutCopyMode = False 
40.
            End If 
41.
        Next 'Tabelle 
42.
        wbTeil.Close 
43.
    End If 
44.
Next 'Datei 
45.
wbGes.Worksheets(1).Activate 
46.
'Gesamt-Datei speichern 
47.
wbGes.Save 
48.
MsgBox "Fertig." 
49.
End Sub
Vorgangsweise:
  • Neue Excel-Datei (mit allen benötigten Tabellen für die gesammelten Daten) erstellen und nicht im gleichen Pfad wie die Einzel-Dateien speichern,
  • obiges VBA-Programm im VBA-Editor in das Code-Fenster von "Diese Arbeitsmappe" oder wahlweise in ein neues Modul einfügen,
  • Ordnerpfad für Teil-Dateien anpassen (derzeit "D:\Viele viele XLS") und
  • starten.

Ablauf:
Es werden alle Dateien des Quellordners mit dem Dateityp ".xls" geöffnet und die Namen der darin enthaltenen Tabellen mit den Tabellennamen in der Sammeldatei verglichen. Bei Übereinstimmung der Tabellennamen werden die Inhalte (inkl. Formeln und Formatierungen) aus der Teil-Datei-Tabelle kopiert und in der Gesamt-Datei-Tabelle ab der ersten leeren Zeile eingefügt. Abschließend wird die Gesamt-Datei gespeichert.

Bitte beachten:
  • Es werden in dieser Version keine neuen Tabellen in der Gesamt-Datei erstellt, diese müssen bereits mit den richtigen Namen existieren.
  • Die Teil-Dateien dürfen nicht geöffnet sein, ansonsten "Automatisierungsfehler".

Grüße
bastla
Bitte warten ..
Mitglied: quba
19.01.2007 um 14:52 Uhr
Genial! Danke bastla!!

Du hast mein Problem genau verstanden und die richtige Lösung parat gehabt!

Vielen herzlichen Dank für deine Hilfe! Hat alles bestens funktioniert!

Grüße
quba
Bitte warten ..
Mitglied: simba2282
07.02.2007 um 16:33 Uhr
Hallo,

ich habe ein ähnliches Problem und die hier angegebene Lösung funktioniert auch bei meinem Problem in soweit schon ganz gut, dass die Daten aus den Einzeldateien untereinander in der Sammeldatei eingefügt werden. Da ich aber mit Tasknamen und Dropdown Menues arbeite kommt immer eine meldung in der ihc den Tasknamen umbenennen muss. Kann dies irgendwie umgangen werden?

Und das ganze geht auch nur wenn die zusammenfassende Datei die gleiche Struktur hat wie die einzelnen...

Ich möchte aber ganz gerne nur bestimmte Spalten aus den einzelnen Dateien rüberziehen (Beispiel: in den Einzelsheet können Stunden pro Tag eingegeben werden, die dann wochenweise aufsummiert werden. In der Sammeldatei hätte ich gerne nur die Wochenwerte...)

Ist das auch irgendwie möglich?

Und das dritte Problem ist, dass die Daten nicht automatisch aktualisiert werden, wenn ich in den Einzeldateien etwas ändere.

Ich habe leider so gut wie gar keine Ahnung mit dem Programmieren in VBA und wäre für jede Hilfe dankbar.

Ich kann auch gerne Beispiel Dateien schicken, wenn das hilft.

Viele Grüße,
simba2282
Bitte warten ..
Mitglied: bastla
07.02.2007 um 16:50 Uhr
Hallo simba2282 und willkommen im Forum!

Du wirst eine wesentlich bessere Chance auf Antworten haben, wenn Du ein neues Thema eröffnest - hier erfährt außer mir nur noch quba von Deinem Anliegen ...

Aber vorweg: Versuch Deine Aufgabenstellung konkreter zu formulieren (insbesondere hinsichtlich des Umfanges - für das Zusammenfassen von 5 oder auch 10 Tabellen wirst Du kein VBA brauchen - und der Struktur / des Aufbaues der Einzeltabellen - eine Tabelle je KW oder mehrere Wochen auf einem Blatt, etc).

Überlege auch gleich, was schon vorweg in den Einzeltabellen erfolgen könnte - etwa das Berechnen der Wochensummen (falls das nicht ohnehin schon geschieht) ...

Zum Thema "Automatische Aktualisierung": Dafür würde eher die Verwendung von Excel-Formeln sprechen, wobei aber die VBA-Lösung beliebig oft mit "leeren" Zieltabellen ablaufen könnte ...

BTW: Mit "Tasknamen" sind vermutlich "Bereichsnamen" gemeint ...

Für mehr habe ich momentan leider nicht Zeit (bin auch nicht ganz fit), daher nochmals der Hinweis auf ein neues Thema.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel Tabellen Vergleich (1)

Frage von Dr.Cornwallis zum Thema Microsoft Office ...

Datenbanken
Excel zu SQL mit mehreren Benutzern (9)

Frage von nightwishler zum Thema Datenbanken ...

Microsoft Office
Excel Daten aus diversen Tabellen sammeln (9)

Frage von FitforLife zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...