VBA-Datenimport aus Netzlaufwerk
28.02.2017 11:09:06
Michael
habe mir als absoluter VBA-Anfänger eine Code zusammengebastelt, der auch funktioniert. Es handelt sich dabei um einen Datenimport, immer der gleichen Zeller vieler Excel-Mappen, welche in einem Pfad liegen. Die Daten werden dynamisch fortlaufend in eine Art "Controlling-Excel" importiert.
Hier die Code-Schnipsel:
Private Function GetValue(pfad, datei, blatt, zelle)
Dim arg As String
If Right(pfad, 1) "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = ""
Exit Function
End If
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , _
xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Sub Import_Data()
Dim i, j As Integer
Dim pfad As String, datei As String, blatt As String, zelle As String
For i = 30 To 1000
If Cells(i, 3) = " " Then
MsgBox "Import der Arbeitszeiten abgeschlossen." & " " & Date & " " & Time
Exit For
End If
For j = 4 To 15
pfad = Worksheets("Parameter").Range("C15") 'Pfadangabe aus Tabellenblatt _
Parameter
datei = Worksheets("Parameter").Cells(i, j) 'Dateiname ebenfalls aus Parameter
blatt = "Leistungsnachweis"
zelle = "C11"
Cells(i, j).Value = GetValue(pfad, datei, blatt, zelle)
Next j
Next i
End Sub
Das Ganze funktioniert wie gesagt tadellos. Problem ist nur, dass die Datei und das Makro auch Andere nutzen können sollen, wofür ein lokaler Pfad nur bedingt geeignet ist. Dazu kommt, dass die Dateien zusätzlich auf einen Server liegen, wo diese auch aktualisiert werden und neue Dateien dazukommen.Deswegen ist mein Zielbild, den Code für den Import so abzuändern, dass direkt die Daten direkt vom Server importiert werden.
Bei einem manuellen Beispiel funktioniert der direkte Import vom Server auch schon einmal. Hier der Code:
Sub DatenUeberHyperlinkHolen()
ActiveWorkbook.Worksheets(1).Cells(1, 1).FormulaLocal = "='https://beispiel.url.de/svn/ _
Projekte/DLMgmt/02_G3/Leistungsnachweise/2016/[Dateiname.xls]Leistungsnachweis'!C11"
End Sub
Allerdings bin ich gerade am Verzweifeln, die beiden ersten Codes so anzupassen, dass der Datenimport vom Server auch in der dynamischen Form funktioniert.Liegt dies an der neuen Funktion (FormulaLocal anstatt Exercute4ExcelMakro)?
Wäre super, wenn mir von euch jemand auf die Sprünge helfen könnte!
Vielen Dank im Voraus
Michael