Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Funktion zum Zugriff auf geschlossene xls-Datei

Funktion zum Zugriff auf geschlossene xls-Datei
29.03.2006 09:32:19
MHofer
An alle VBA-Profis,
wie meine Recherche in diesem Forum ergeben hat, ist das Thema Zugriff auf geschlossene xls-Dateien ja nicht neu. Die beste Lösung die ich soweit gefunden habe ist sicher den meisten bekannt:
Option Explicit
Sub TestGetValue()
Dim p As String
Dim f As String
Dim s As String
Dim r As String
p = "D:\"
f = "Test.xls"
s = "Tabelle1"
r = "A1"
MsgBox GetValue(p, f, s, r)
Worksheets("Tabelle1").Range("A1") = GetValue(p, f, s, r)
End Sub

Private Function GetValue(path, file, sheet, ref)
'   Retrieves a value from a closed workbook
Dim arg As String
'   Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
'   Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
'   Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

Wenn ich eine Beispieltabelle anlege, kann ich über die Sub TestGetValue auch die Daten auslesen die ich möchte (in dem Beispiel zum Beispiel der Wert 200). TestGetValue ruft nur die Funktion GetValue auf und übergibt die Parameter.
Ich habe versucht, die Funktion GetValue direkt als Excel-Funktion in eine Zelle einzugeben
=getvalue(d:\;Test.xls;Tabelle1;A1)
Im Gegensatz zur Sub TestGetValue erhalte ich als Ergebnis der Funktion nur die Fehlermeldung #WERT. Kann mir jemand erklären, ob und wie es geht. Die Lösung über ein Makro ist für mein Ziel ziemlich aufwändig und kompliziert.
Danke im Voraus
MHofer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zwischeninfo
29.03.2006 10:09:21
UweD
Hallo
wenn du die Funktion direkt vom Tabellenblatt aus ausführst, wird der letzte Parameter (arg) als Zellbezug interpretiert.
Du Möchtest A1 als Text übergeben, die Funktion nimmt aber den Text aus der Zelle A1.
Dann wird nichts gefunden.
Lösung hab ich noch keine
Gruß UweD
(Rückmeldung wäre schön)
arg = ref
29.03.2006 10:10:41
UweD
meine natürlich den letzten Parameter ref
AW: arg = ref
29.03.2006 10:26:21
MHofer
schon mal vielen Dank.
Es macht aber keinen Unterschied ob ich die Funktion
als =getvalue(d:\;Test.xls;Tabelle1;A1)
oder =getvalue("d:\";"Test.xls";"Tabelle1";"A1")
eingebe.
Gruß
MHofer
AW: arg = ref
29.03.2006 14:24:53
Heiko
Hallo M,
habe mich auch ein bisschen mit dem Problem beschäftigt, habe dazu diesen Link gefunden.
http://visualbasicforum.com/printthread.php?t=227990
Darin ist ein Hinweis das es mit ExecuteExcel4Macro in UDF nicht ohne weiteres geht, weiter unten gibt es dann noch einen Hinweis das es mit einer weiteren Instanz irgendwie gehen soll.
Wenn du das testet und Erfolg hast dann poste doch bitte deine Ergebnisse.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: arg = ref
29.03.2006 15:49:04
Heiko
Hallo M,
hier mal eine Beispielmappe, Tab 1 deine Orginalversion Tab2 eine Version die von Harlan Grove entwickelt wurde.
https://www.herber.de/bbs/user/32401.xls
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: arg = ref
29.03.2006 14:39:35
UweD
Hallo
ich geb hier auf.
Bei .. steigt das Makro aus,bei direktem Aufruf der Funktion.
aus der Hilfe entnehme ich das hier.
Anmerkung
Das Microsoft Excel 4.0-Makro wird in der aktuellen Arbeitsmappe bzw. im Arbeitsblatt nicht ausgewertet. Deshalb sollten Bezüge als externe Bezüge angegeben und der Arbeitsmappenname ausdrücklich genannt sein... Um beispielsweise das Microsoft Excel 4.0-Makro "Makro_3" in MAPPE1 auszuführen, müssen Sie die Zeichenfolge "MAPPE1!Makro_3()" angeben. Ohne Angabe des Arbeitsmappennamens kann die Methode nicht erfolgreich ausgeführt werden.

Hier hab ich weiterversucht, komme aber zu keinem Ergebnis
Gruß UweD
(Rückmeldung wäre schön)
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige