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 Oct 02, 2009 um 13:13:17 Uhr
Original-Titel "Excel Makro" ein bisschen erweitert.

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

Content-Key: 107948

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

Printed on: April 18, 2024 at 12:04 o'clock

Member: bastla
bastla Feb 03, 2009 at 17:49:35 (UTC)
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
Member: Marcel-D
Marcel-D Feb 04, 2009 at 08:07:49 (UTC)
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
Member: bastla
bastla Feb 04, 2009 at 17:08:56 (UTC)
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
Member: Marcel-D
Marcel-D Feb 05, 2009 at 07:54:10 (UTC)
Goto Top
Super Danke

Ich werds gleich mal ausprobieren.

Gruß
Marcel
Member: Biber
Biber Oct 02, 2009 at 13:34:04 (UTC)
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