VBA Code erweiter
09.11.2018 22:44:28
Ray
Ich bin der Neue ;)
Ich benötige mal einen Rat.
Ich habe mir eine Formel zurecht gelegt (google) die soweit auch funktioniert.
Private Sub Worksheet_Activate()
Dim strPath As String, strFile As String
strPath = " D:\System\Test "
strFile = "Mappe1.xlsx"
Worksheets(3).Range("D2").Value = GetValue(strPath, strFile, "Tabelle1", "D2")
Worksheets(3).Range("E2").Value = GetValue(strPath, strFile, "Tabelle1", "E2")
Worksheets(3).Range("D3").Value = GetValue(strPath, strFile, "Tabelle1", "D3")
Worksheets(3).Range("E3").Value = GetValue(strPath, strFile, "Tabelle1", "E3")
End Sub
Private Function GetValue(ByVal path As String, ByVal file As String, ByVal sheet As String, _
ByVal ref As String) As String
Dim arg As String
arg = "'" & path & "\[" & file & "]" & sheet & "'!" & Range(ref).Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Nun ist mir aufgefallen, dass wenn die zu auslesende Zelle Leer ist, Kopiert das Makro eine 0 in die Ziel Zelle. Kann man das irgendwie in der Formel abfangen?
So das die Zelle leer bleibt?
Und eine Frage hätte ich noch.
Ich bräuchte diesen Teil aus den Code mehrfach.
Worksheets(3).Range("D2").Value = GetValue(strPath, strFile, "Tabelle1", "D2")
Immer die Spalte D-E die Zeilen Runter ca. 250 Zeilen.
Ich hatte versucht mir diesen Teil D2... in einer Excel per Zeile runter ziehen auf 250 zu erweitern. Und dann per ="&""&""&"& wieder zusammenzusetzen. Funktioniert ebenfalls gut, nur sobald ich den Zeile dann per copy paste wieder in den Code einfüge und Ausführe, bekomme ich einen "Laufzeitfehler 13" fehler.Wenn ich diesen Teil aber direkt aus dem Code per copy und paste einfüge klappt der Code. Ich hoffe es ist verständlich was ich meine, sonst natürlich gerne fragen.
Wäre schön wenn mir geholfen werden kann.
Schönen Abend noch
Ray