AW: GetValue ohne Blattnamen?
27.11.2006 20:40:47
Reinhard
Hallo Herbert,
möglicherwise meint Rainer die nachfolgende Funktion aus dem Internet.
Gruß
Reinhard
Ev. könnte dir die folgende Funktion weiterhelfen, die allerdings nur aus
VBA heraus funktioniert. Du müsstest also deine Mappe 'umbauen' und z.B.
mit dem Worksheet_Change()-Ereignis arbeiten um die Werte zu holen.
Die unten noch angehängte
Sub zeigt ein Beispiel des Aufrufs.
Public
Function GetValue(path$, file$, sheet$, range_ref$)
'Holt einen Wert aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu gebrauchen; nicht aus einer Tabellenzelle heraus
'© John Walkenbach / Übersetzt von Thomas Ramel
'Die GetValue-Funktion, benötigt die vier unten angeführten Arugmente:
'path: Das Laufwerk und den Pfad der geschlossenen Datei (z.B. "C:\Daten")
'file: Der Dateiname der Arbeitsmappe (z.B. "MeineDatei.xls")
'sheet: Der Name des TabellenblattesThe worksheet name (z.B. "Tabelle1")
'ref: Der Zellbezug (z.B. "A1")
Dim arg As String
'Sicherstellen, dass die Datei exisiert
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "Datei nicht gefunden"
Exit Function
End If
'Den Aufruf-String zusammenstellen
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(range_ref).Range("A1").Address(, , xlR1C1)
'Ausführen des XL4-Makros
GetValue = ExecuteExcel4Macro(arg)
End Function
Public
Sub HoleWert()
Dim rngZelle As Range
Application.ScreenUpdating = False
For Each rngZelle In ActiveSheet.Range("A1:C10")
rngZelle = GetValue("\\server\Pfad\", "Dateiname.xls", _
"Tabelle1", rngZelle.Address)
Next rngZelle
Application.ScreenUpdating = True
End Sub
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]