Hallo,
ich kenne mich leider sehr wenig mit Makros aus, möchte nun allerdings das u.s. Makro erweitern. Bisher ist die Excel Datei mit dem Makro und der Ordner, auf den das Makro zugreift, in einem gemeinsamen Ordner gespeichert. Nun habe ich mehrere Dateien an verschiedenen Orten, die ich innerhalb des Makros zusammenführe. Daher soll das Makro auf den Pfad X zugreifen, dort den Ordner "Test" öffnen und aus den Dateien das Tabellenblatt "Output" kopieren. Danach soll der Pfad Y geöffnet werden und dasselbe Spiel von vorne.
An welcher Stelle wird dieses in dem Makro ergänzt und welcher Befehl ist dazu notwendig?
Vielen lieben Dank im Voraus für eure Hilfe!!
Viele Grüße
Maren
Sub main_run()
Dim app As New Excel.Application
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim currentfile, count, startingrow, row, row_iterate, rownumber As Integer
'Settings
Dim tablename, foldername As String
tablename = ThisWorkbook.Worksheets("Input").Range("field_tablename").Value
foldername = ThisWorkbook.Worksheets("Input").Range("field_foldername").Value
startingrow = ThisWorkbook.Worksheets("Input").Range("field_startingrow").Value
'Delete Content
ThisWorkbook.Worksheets("Output").Range("A4:ZZ100000").Value = ""
'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object
Set objFolder = objFSO.GetFolder(ThisWorkbook.Path & "\" & foldername)
count = 0
For Each objFile In objFolder.Files
count = count + 1
Next objFile
currentfile = 1
row = 4
'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
ThisWorkbook.Worksheets("Input").Range("status").Value = currentfile & " von " & count
ThisWorkbook.Worksheets("Input").Range("status").Calculate
app.Visible = False 'Visible is False by default, so this isn't necessary
Dim book As Excel.Workbook
Set book = app.Workbooks.Add(objFile.Path)
row_iterate = startingrow
rownumber = 0
rownumber = book.Worksheets(tablename).Range("A" & startingrow).CurrentRegion.Rows.count - 3
ThisWorkbook.Worksheets("Output").Range(row & ":" & row + rownumber - 1).Value2 = book.Worksheets(tablename).Range(startingrow & ":" & startingrow + rownumber - 1).Value2
ThisWorkbook.Worksheets("Output").Range(row & ":" & row + rownumber - 1).RowHeight = 15
row = row + rownumber
book.Close SaveChanges:=False
app.Quit
Set app = Nothing
currentfile = currentfile + 1
Next objFile
Set book = Nothing
End Sub
|