Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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

Import aus Datei mit unbekanntem Namen

Import aus Datei mit unbekanntem Namen
08.03.2021 22:16:43
Günther
Guten Tag sehr verehrte Damen und Herren,
ich importiere aktuell auf folgende Art Daten aus einer Quelldatei in meine Zieldatei:
Sub ImportAllesClosed()
' ImportAllesClosed Makro
' Importierung der Ebenen und BOM aus der geschlossenen Datei BOM.xlsx
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\BOM.xlsx")
ext_wb.Sheets(1).Range("A3:A1000").Copy
ThisWorkbook.Sheets("FCIL").Range("D11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
ext_wb.Sheets(1).Range("B3:CB1000").Copy
ThisWorkbook.Sheets("FCIL").Range("M11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
ext_wb.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Leider hat es sich eingebürgert, dass der Dateiname der Quelldatei oft verändert wird. Da die Datei von verschiedenen Personen zugeschickt wird, kommen alle erdenklichen Variationen vor. Mal wird ein Datum oder Name ergänzt, oder völlig anders benannt. Die einzige Konstante ist die Dateiendung ".xlsx".
Ich möchte es vermeiden, dass ich die Datei vor dem Import umbenennen muss. Daher suche ich eine Lösung, die Datei unabhängig vom Namen zu importieren. Ist das möglich?
In dem Ordner befindet sich immer nur die Quelldatei (.xlsx) und die Zieldatei (.xlsm).
Ich bedanke mich vorab sehr für ihre Hilfe und wünsche einen schönen Tag/Abend.
Mit freundlichen Grüßen
G. Gas.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Import aus Datei mit unbekanntem Namen
08.03.2021 22:28:31
Tobias
Guten Abend Günter,
in den bestehenden Code einfügen, und den Pfadnamen noch individuell anpassen:
    Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim datei As Object
strfolder = "##Bitte Pfad Eingeben##"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder(strfolder)
For Each datei In objVerzeichnis.Files
If Not datei.Name = ThisWorkbook.Name Then
Set ext_wb = Workbooks.Open(datei.Name)
End If
Next
Schöne Grüße
Tobias

AW: Import aus Datei mit unbekanntem Namen
08.03.2021 23:51:40
Günther
Guten Abend Tobias,
vielen Dank für deine Hilfe, leider bedarfs es wohl noch einen Schubs von dir, da ich in VBA nicht gerade ein Genie bin.
Ich habe deinen Teil im Code oben platziert und meinen Teil unter "Next" eingefügt und den Pfad ergänzt:
Sub ImportAllesClosedX()
' ImportAllesClosedX Makro
' Importierung der Ebenen und BOM aus der geschlossenen Datei mit unbekanntem Namen
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim datei As Object
strfolder = "C:\FCIL\"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder(strfolder)
For Each datei In objVerzeichnis.Files
If Not datei.Name = ThisWorkbook.Name Then
Set ext_wb = Workbooks.Open(datei.Name)
End If
Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\BOM.xlsx")
ext_wb.Sheets(1).Range("A3:A1000").Copy
ThisWorkbook.Sheets("FCIL").Range("D11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
ext_wb.Sheets(1).Range("B3:CB1000").Copy
ThisWorkbook.Sheets("FCIL").Range("M11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
ext_wb.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Anschließend habe ich die Quelldatei zum Test in BOM_XYZ.xlsx umbenannt und das Makro dann ausgeführt.
Der Debugger meldet sich daraufhin mit "Laufzeitfehler 1004": Wir konnten 'BOM_XYZ.xlsx' nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?
Klicke ich auf Debuggen markiert der Debugger dann die Zeile mit dem Eintrag: Set ext_wb = Workbooks.Open(datei.Name)
Mit freundlichen Grüßen in die Nacht
Günther

Anzeige
AW: Import aus Datei mit unbekanntem Namen
09.03.2021 06:53:20
Tobias
Hallo Günter,
dann versuch mal über die Dateiendung die richtige Datei zu ermitteln.

Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim datei As Object
strfolder = "C:\FCIL\"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder(strfolder)
For Each datei In objVerzeichnis.Files
If Right(datei.Name, 4) = "xlsx" Then
Set ext_wb = Workbooks.Open(datei.Name)
End If
Next
Set objFileSystem = Nothing
Set objVerzeichnis = Nothing

In deinem alten Code musst du dann natürlich auch
Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\BOM.xlsx")
rausnehmen.
Schöne Grüße
Tobias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige