AW: Referenzieren auf Tabellenblatt?
30.01.2009 11:38:37
Josef
Hallo Maris,
kopiere den Code in das Modul der Tabelle.
Es wird ein definierter Name (ExtRef_) angelegt, welchen du dann in einer Formel anwenden kannst.
zB.
=Index(ExtRef_;1)
Im Code must du den Pfad zur Datei, den Dateinamen, usw. anpassen!
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit
Const cstrPath As String = "E:\Office\Excel\Forum\Test" 'Pfad - Anpassen
Const cstrFile As String = "datei.xls" 'Datei - Anpassen
Const cstrRange As String = "$E$12:$E22" 'Wichtig - Bezug absolut!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strRef As String
If Target.Address = "$A$1" Then 'Zelle in der der Tabellenname (zB. das Datum) angegeben wird -Anpassen
strRef = "='" & cstrPath & IIf(Right(cstrPath, 1) = "\", "[", "\[") & _
cstrFile & "]" & Target.Text & "'!" & cstrRange
setNameRef "ExtRef_", strRef, ThisWorkbook
End If
End Sub
Private Sub setNameRef(sName As String, Optional sRefersTo As String = "=0", Optional sWorkBook As Workbook)
Dim objName As Name
On Error GoTo ErrExit
If sWorkBook Is Nothing Then Set sWorkBook = ActiveWorkbook
For Each objName In sWorkBook.Names
If objName.Name = sName Then
objName.RefersTo = sRefersTo
Exit Sub
End If
Next
sWorkBook.Names.Add sName, sRefersTo
ErrExit:
If Err.Number <> 0 Then MsgBox "Der Name [" & sName & "] konnte nicht" & vbLf & _
"erstellt bzw. geändert werden!" & vbLf & vbLf & "Fehler :" & Err.Number & _
vbLf & vbLf & "Beschreibung :" & Err.Description, vbExclamation, "Fehler"
End Sub
Gruß Sepp