ich habe wieder einmal ein Anliegen an Euch - ich muss periodisch die Daten einer Arbeitsmappe aktualisieren - die Quelle der Daten ist immer auf einem Netzlaufwerk, nämlich L:/temp/ - hier liegen jedoch immer einige Dateien mit fast gleichen Namen (export.xlsx, export1.xlsx, ...) - ich möchte daher prüfen, in welcher dieser vorhandenen Dateien ein bestimmter Text in der Zelle A1 des Sheet1 steht (dieses Merkmal steht nur in einer dieser Dateien).
Wenn die richtige Datei gefunden wurde, dann möchte ich die Daten in meine Arbeitsmappe kopieren.
Anbei das Coding zum Aktualisieren der Daten - wenn die Datei schon geöffnet ist funktioniert es:
Sub Import_ISR()
Dim actual_month As Date
'Vorhandene Daten im Ziel löschen
'ActiveWorkbook.Worksheets("ISR Import Database").AutoFilter.Sort.SortFields. _
Clear
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Range("A3", ActiveCell.SpecialCells(xlLastCell)).EntireRow.Delete
Range("A3").Select
'Daten von Quelle kopieren und im Ziel einfügen
Windows("export.XLSX").Activate
Range("A2", ActiveCell.SpecialCells(xlLastCell)).Copy
Windows("SQ_BSC-Overview__FY18.xlsm").Activate
Range("A3").Select
ActiveSheet.Paste
actual_month = DateSerial(Year(Now), Month(Now), 1)
ActiveWorkbook.Worksheets("ISR Import Database").Range("A2").AutoFilter Field:=9, Criteria1:= _
"01.03.2017", Operator:=xlAnd
End Sub
Zum Import einer externen Quelle habe ich folgendes Coding gefunden, welches u.U. eine gute Basis wäre - man müsste das nur an die Anforderungen umbauen - nur weiß ich leider nicht wie:Sub Daten_aktualisieren2()
' Pfad Variable definieren
Dim strQuelle As String
strQuelle = Worksheets("ISR Import Database").Cells(1, 11).Text
If Dir(strQuelle) = "" Then
MsgBox "Datei nicht gefunden!", vbExclamation, "Hinweis"
Exit Sub
End If
' Daten_aktualisieren Makro
ActiveSheet.Range("A3").Select
'Sheets("ISR Import Database").Select
With ActiveWorkbook.Connections("export Sheet1$").OLEDBConnection
.BackgroundQuery = True
.CommandText = Array("Sheet1$")
.CommandType = xlCmdTable
.Connection = _
Array("OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" _
_
& strQuelle & ";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System _
database="""";Jet OLEDB:Re", _
"gistry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB: _
Database Locking Mode=0;Jet OLEDB:Global Partia", _
"l Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=""""; _
Jet OLEDB:Create System Database=False;Jet ", _
"OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB: _
Compact Without Replica Repair=False;Jet OLE", _
"DB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation= _
False;Jet OLEDB:Limited DB Caching=False;", _
"Jet OLEDB:Bypass ChoiceField Validation=False")
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = strQuelle
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("export Sheet1$")
.Name = "export Sheet1$"
.Description = ""
End With
ActiveWorkbook.Connections("export Sheet1$").Refresh
End Sub
Wäre daher nett, wenn mir hierbei jemand helfen würde - besten Dank schonmal!Glg,
Chrisi