marcel-d
Goto Top

Excel Makro - Daten aus mehreren Tabellen in einer neuen Tabelle zusammenfassen

Hallo,

ich habe etwa 2000 Quelldateien, aus denen ich ganz bestimmte Zellen (es sind immer dieselben Zellpositionen) in einer neuen Zieldatei zusammenfügen möchte.
Dies würde ich gern über ein Makro laufen lassen. Nur mein Problem ist, dass ich mich gar nicht mit Makros auskenne.

Habe dies hier gefunden weiß aber nicht genau ob mir das in irgendeiner Form helfen könnte. Außerdem wüsste ich nicht was ich in Zeile 7/8 eintragen soll.
Excel Makro muss alle Dateien im Ordner durchlaufen


Wäre nett wenn mir jemand helfen könnte.
Kommentar vom Moderator Biber am 02.10.2009 um 15:13:17 Uhr
Original-Titel "Excel Makro" ein bisschen erweitert.

Und auf "Gelöst" gesetzt, falls sich das Feedback verzögern sollte.

Content-ID: 107948

Url: https://administrator.de/contentid/107948

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

bastla
bastla 03.02.2009 um 18:49:35 Uhr
Goto Top
Hallo Marcel-D!

Etwas mehr Informationen (wo befinden sich die Dateien, welche Zellen sollen an welche Positionen eingefügt werden) wäre hilfreich ...

Grüße
bastla
Marcel-D
Marcel-D 04.02.2009 um 09:07:49 Uhr
Goto Top
Also ich habe auf dem Laufwerk E das Verzeichnis Kundenkartei.
Aus allen darin enthaltenen Dateien muss ich folgende Zellen konsolidieren: C2, C5, C7, C9, E3, E5, E7, E9, I1

Gruß
Marcel
bastla
bastla 04.02.2009 um 18:08:56 Uhr
Goto Top
Hallo Marcel-D!

Zum Testen des folgenden Makros vielleicht nur einmal 3 oder 4 Dateien in einen neuen Ordner kopieren und diesen als "sQuellPfad" angeben. Die Zusammenfassungsdatei, in welcher das Makro ausgeführt werden soll, darf nicht im selben Ordner gespeichert sein.
Sub Zusammenfassen()
sQuellpfad = "E:\Kundenkartei-Test"  

Q = Array("C2", "C5", "C7", "C9", "E3", "E5", "E7", "E9", "I1") 'Quellzellen  
Z = Array("A", "B", "C", "D", "E", "F", "G", "H", "I") 'Zielspalten in Sammeldatei  

R = 3 'Startzeile in Sammeltabelle  

Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")  
N = UBound(Q)

For Each oFile In fso.GetFolder(sQuellpfad).Files
    If LCase(Right(oFile.Name, 4)) = ".xls" Then  
        Application.Workbooks.Open oFile.Path
        For i = 0 To N
            wbGes.Worksheets(1).Cells(R, Z(i)).Value = ActiveWorkbook.Worksheets(1).Range(Q(i)).Value
        Next
        ActiveWorkbook.Close False
        R = R + 1
    End If
Next

wbGes.Worksheets(1).Activate
wbGes.Save
MsgBox "Fertig."  
End Sub
Die Daten werden dem ersten Tabellenblatt der jeweiligen Quelldatei entnommen und (ohne Formatierung) in die erste Tabelle der Sammeldatei übertragen. Am Ende wird die Sammeldatei automatisch gespeichert (siehe "wbGes.Save").

Grüße
bastla
Marcel-D
Marcel-D 05.02.2009 um 08:54:10 Uhr
Goto Top
Super Danke

Ich werds gleich mal ausprobieren.

Gruß
Marcel
Biber
Biber 02.10.2009 um 15:34:04 Uhr
Goto Top
ich geh mal davon aus, dass das "gleich mal ausprobieren" etwas länger dauert, weil...hmm..
schon allein die Wahl der richtigen Schriftart und Schriftart will wohlüberlegt sein....

Und ob sich bastlas Schnipsel wirklich mit Copy&Paste übernehmen lässt oder ob ich jemenad einstellen sollte, der es eintippt.... hmm...

Und überhaupt... eigentlich lohnt es sich doch gar nicht mehr, mit Excel 2008 anzufangen, bald gibt es doch bestimmt Excel 2015....

Fragen über Fragen.... endlose Diskussionen im ganzen Entwicklungsteam....

Ach weisst Du... während Du es noch schnell ausprobierst setze ich schon mal den Beitrag auf "Erledigt".

MfG Biber