Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro: Dateien öffnen, kopieren, schließen

Makro: Dateien öffnen, kopieren, schließen
08.04.2019 18:21:24
Wal
Hallo zusammen,
ich brauche mal eure Hilfe:
Ich habe mehrere Dateien (deren Dateinamen ändern sich monatlich).
Daher habe ich diesen Code geschrieben, um alle Dateien im Ordner zu öffnen.
Leider will er die aktuelle auch öffnen, so dass ich eine Fehlermeldung bekomme.
Heißt im ersten Schritt müsste ich eine Datei ausschließen.
Dann will ich von jeder Datei die Zellen A3:Z2000 kopieren und in der Hauptdatei einfügen heißt, dass die jeweils nächste Datei um 2000 Zeilen weiter unten eingefügt werden muss.
Danach will ich alle leeren Zeilen in der Hauptdatei ausblenden und danach alle Dateien, bis auf die Hauptdatei schließen.
Leider habe ich erst diesen Ansatz,
jedoch funktioniert er nur bis zu dem Punkt, bis er die Hauptdatei (die ist im gleichen Ordner) _
öffnen will:

Sub OpenFiles()
Const FILE_PATH As String = "P:\Listen\"
Dim MyFile As String
Dim objWorkbook As Workbook
Application.ScreenUpdating = False
MyFile = Dir$(FILE_PATH & "*.xlsx")
Do Until MyFile = ""
Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)
Call objWorkbook.Close(SaveChanges:=True)
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub

Ich danke euch im Voraus für eure Mühe! :)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Dateien öffnen, kopieren, schließen
08.04.2019 18:46:43
Hajo_Zi
if ThisWorkbook.NameFILE_PATH then
set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Makro: Dateien öffnen, kopieren, schließen
08.04.2019 19:42:42
Nepumuk
Hallo Wal,
teste mal:
Sub OpenFiles()
    Const FILE_PATH As String = "P:\Listen\"
    Dim MyFile As String
    Dim objWorkbook As Workbook
    
    Application.ScreenUpdating = False
    
    MyFile = Dir$(FILE_PATH & "*.xlsx")
    
    Do Until MyFile = ""
        
        If MyFile <> ThisWorkbook.Name Then
            
            Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)
            
            Call objWorkbook.Close(SaveChanges:=True)
            
        End If
        
        MyFile = Dir$
    Loop
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro: Dateien öffnen, kopieren, schließen
08.04.2019 22:26:30
Wal
Danke, kannst du mir bei den anderen Punkten auch helfen?
AW: Makro: Dateien öffnen, kopieren, schließen
09.04.2019 11:13:37
Nepumuk
Hallo Wal,
teste mal:
Option Explicit

Public Sub OpenFiles()
    
    Const FILE_PATH As String = "P:\Listen\"
    
    Dim MyFile As String
    Dim objWorkbook As Workbook
    Dim lngRow As Long
    
    Application.ScreenUpdating = False
    
    Call ThisWorkbook.Worksheets("Tabelle1").Cells.ClearContents
    
    lngRow = 1
    
    MyFile = Dir$(FILE_PATH & "*.xlsx")
    
    Do Until MyFile = ""
        
        If MyFile <> ThisWorkbook.Name Then
            
            Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)
            
            Call objWorkbook.Worksheets("Tabelle1").Range("A1:Z2000").Copy( _
                Destination:=ThisWorkbook.Worksheets("Tabelle1").Cells(lngRow, 1))
            
            lngRow = lngRow + 2000
            
            Call objWorkbook.Close(SaveChanges:=True)
            
        End If
        
        MyFile = Dir$
        
    Loop
    
    With ThisWorkbook.Worksheets("Tabelle1")
        .Cells(.Cells(.Rows.Count, 1).End(xlUp). _
            Offset(1, 0).Row, .Rows.Count).EntireRow.Hidden = True
        .Cells(.Cells(.Columns.Count, 1).End(xlToLeft). _
            Offset(0, 1).Column, .Columns.Count).EntireColumn.Hidden = True
    End With
    
    Application.ScreenUpdating = True
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro: Dateien öffnen, kopieren, schließen
09.04.2019 14:54:27
Wal
Leider bekomme ich an dieser Stelle:
Call ThisWorkbook.Worksheets("Tabelle1").Cells.ClearContents
Index außerhalb des gültigen Bereichs, auch wenn ich den Namen Tabelle1 ändere
AW: Makro: Dateien öffnen, kopieren, schließen
09.04.2019 14:54:29
Wal
Leider bekomme ich an dieser Stelle:
Call ThisWorkbook.Worksheets("Tabelle1").Cells.ClearContents
Index außerhalb des gültigen Bereichs, auch wenn ich den Namen Tabelle1 ändere
AW: Makro: Dateien öffnen, kopieren, schließen
09.04.2019 16:07:31
Nepumuk
Hallo Wal,
kann es sein, dass sich beim Tabellennamen ein Leerzeichen vorne oder hinten eingeschlichen hat?
Gruß
Nepumuk
AW: Makro: Dateien öffnen, kopieren, schließen
08.04.2019 22:25:50
Wal
Hallo Ihr beiden, ich habe den Code von Nepumuk genutzt und es klappt super, könnt ihr mir bei den anderen Punkten auch helfen?
Anzeige
AW: Makro: Dateien öffnen, kopieren, schließen
09.04.2019 22:03:25
Wal
Hey, es lag tatsächlich daran. :)
Nun funktioniert es auch, jedoch bekomme ich die Nachricht:
"Anwendungs- oder objektdefinierter Fehler"
.Cells(.Cells(.Rows.Count, 1).End(xlUp). _
Offset(1, 0).Row, .Rows.Count).EntireRow.Hidden = True
Scheinbar liegt es an den Zeilen.
Aber danke erstmal für deine Hilfe :)
AW: Makro: Dateien öffnen, kopieren, schließen
10.04.2019 04:45:49
Nepumuk
Hallo Wal,
da hatte ich einen Denkfehler. So geht's:
With ThisWorkbook.Worksheets("Tabelle1")
    .Range(.Cells(.Rows.Count, 1).End(xlUp). _
        Offset(1, 0), .Cells(.Rows.Count, 1)).EntireRow.Hidden = True
    .Range(.Cells(1, .Columns.Count).End(xlToLeft). _
        Offset(0, 1), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True
End With

Gruß
Nepumuk
Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige