Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel Dateien zusammenführen
#1
Hallo zusammen,

gibt es eine Möglichkeit mehrere Exceldateien, die alle gleich aufgebaut sein (Spaltenmenge, -bezeichnung), zusammenzuführen.
Es geht um Lieferantenartikellisten. Aktuell habe ich über 600 einzelne Exceldateien, die ich in einer Tabelle zusammen haben will. Copy&Paste ist eine Möglichkeit, die ich nicht wirklich in Betracht ziehe, denn die 600 Dateien betreffen nur eine Artikelgruppe und derer gibt es über 20 Confused

Grüße
Andy
Antworten Top
#2
Hallo,

es geht in jedem Fall mit VBA, vermutlich auch mit PQ.

Mit welcher Methode hast Du mehr Erfahrungen?

mfg
Antworten Top
#3
Hi Fennek,

das ist das Problem. Mit beiden 0 Erfahrung Blush

Gruß
Andy
Antworten Top
#4
Hi,

wenn du mehr Hilfe benötigst, musst du mehr Input geben.

z.B.

2 anonymisierte Lieferantenartikellisten, aus denen sich deine, ggfs. händisch,  erstellte Wunschliste generiert.
eine Angabe, wo die Lieferantenartikellisten zu finden sind ( Datei?/ bereits kopierte Daten in einer Datei auf verschiedenen Worksheets?)

Wie sagte schon FJS seinerzeit?  "Ohne Input kein Output!"  Und Prof. Karl Schiller zwischenrufte:"Put, put, put wo sind die Enten?" 18

VG Juvee
Antworten Top
#5
Hi,

ich habe in meinem gesammelten Makro-Archiv was gefunden:


Excel-Dateien zusammenführen (gleiche Tabellenstruktur)

ich habe eine Zieldatei (Masterfile), die jeden Tag aktualisiert werden muss.
Täglich kommt eine Quelldatei hinzu, deren Tabelle an die Zieldatei (an deren Tabelle) hinzugefügt werden muss. (natürlich ohne die erste Zeile, den Spaltenbeschriftungen)
Dies möchte ich weitgehend automatisieren. Am Besten mit einem Button in der Zieldatei, mit Klick öffnet sich ein Fenster indem ich die Zieldatei auswähle.
Mit OK bestätigen und "zack" sind die Daten an die Zieldatei (deren Tabelle) angefügt.
Somit kann ich quasi die Zieldatei jeden Tag mit ein paar Klicks erweitern OHNE Copy&Paste nutzen zu müssen.

Die Tabellenstruktur der Ziel und Quelldateien sind dabei immer gleich.

Wie bekomme ich es hin, dass aus den ausgewählten Dateien nur Daten kopiert werden, die sich zwischen Spalte A und z.B. F befinden?
(so dass die Zieltabelle über die Spalte F hinaus nicht überschrieben wird)


Teste mal diesen zugehörigen Code an einer Kopie Deiner Daten:
Code:
Public Sub MergeAggregate()
  
   Const FOLDER_PATH = "C:\Ordner\" 'Pfad angepasst
  
   Dim strFilename As String
   Dim objTargetWorksheet As Worksheet
   Dim objSourceWorkbook As Workbook
  
   Application.ScreenUpdating = False
  
   'Active Tabelle
   Set objTargetWorksheet = ActiveSheet
  
   'erste Datei suchen
   strFilename = Dir$(FOLDER_PATH & "*.xlsx")
  
   Do Until strFilename = vbNullString
      'Öffnet eine Datei
      Set objSourceWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
     
      'Kopiert von den Zeilen 2 bis zum Ende
      With objSourceWorkbook.ActiveSheet
         .Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 6)).Copy
      End With
     
      'in die aktive Mappe und fügt sie jeweils unten an
      With objTargetWorksheet
         .Paste Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
      End With
     
      Application.CutCopyMode = False
     
      'Schliesst die geöffnete Datei
      Call objSourceWorkbook.Close(SaveChanges:=False)
      'lese den nächsten Dateinamen
      strFilename = Dir$()
      Set objSourceWorkbook = Nothing
   Loop
  
   Set objTargetWorksheet = Nothing
   Application.ScreenUpdating = True
  
End Sub

Da werden vermutlich alle Dateien eines Ordners nacheinander geladen und in das Arbeitsblatt der aktiven Mappe zusammenkopiert.

Gruß Ralf
Antworten Top
#6
Hi @Raabe,

das hatte ich auch online gefunden, war aber eher Semioptimal.

Nach langer Suche und Telefonaten kam dann die simple Lösung über: Daten abrufen aus Datei > Ordner
Da hat es dann geklappt.
Antworten Top
#7
Hi,

warum, was hat an dem Makro nicht gepasst?

Gruß Ralf
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste