Forums Neueste Beiträge
 

Excel indirekter Zugriff auf Tabellenblatt im Netzwerk

21/01/2008 - 08:50 von khnagel | Report spam
Hallo zusammen,

Ich möchte über ein Auswahlfeld gesteuert auf eine Zelle in
unterschiedlichen Tabellenblàttern einer fernen Tabelle zugreifen.
Es existiert z.B. in der Datei "testdatei die Folder F1 F2 F3 dort
möchte ich jeweils das Feld a1 auslesen. Den Foldernamen möchte ich
variabel einsetzen.

Mein Versuch über indirekt und Verkette führt zur Fehlermeldung
"#Bezug"

=INDIREKT(VERKETTEN("'D:\testdatei"; A9; "'!a$1"))

Gibt es dazu eine Lösung?

Vielen dank im vorraus.

KHN
 

Lesen sie die antworten

#1 thomas.ramel
22/01/2008 - 09:01 | Warnen spam
Grüezi KHN

On 21 Jan., 08:50, wrote:

Ich möchte über ein Auswahlfeld gesteuert auf eine Zelle in
unterschiedlichen Tabellenblàttern einer fernen Tabelle zugreifen.
Es existiert z.B. in der Datei "testdatei die Folder F1 F2 F3 dort
möchte ich jeweils das Feld a1 auslesen. Den Foldernamen möchte ich
variabel einsetzen.

Mein Versuch über indirekt und Verkette führt zur Fehlermeldung
"#Bezug"

=INDIREKT(VERKETTEN("'D:\testdatei"; A9; "'!a$1"))

Gibt es dazu eine Lösung?



INDIREKT() kann nur arbeiten, wenn die verküpfte Tabelle auch geöffnet
ist.

Daher kannst Du das Ganze nur über VBA realisieren; schau dir mal die
folgende Function nàher an, die Du wie unten geschildert aus VBA (und
nur aus VBA) heraus aufrufen kannst.

Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, _
sourceSheet As String, _
SourceRange As String, _
TargetRange As Range) As Boolean

'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus


Dim strQuelle As String
Dim Zeilen As Long
Dim Spalten As Byte

On Error GoTo InvalidInput

strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & _
sourceSheet & "'!" & _
Range(SourceRange).Cells(1, 1).Address(0, 0)

Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count

With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With

GetDataClosedWB = True
Exit Function

InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", _
vbExclamation, "Get data from closed Workbook"
GetDataClosedWB = False
End Function

Public Sub HoleDaten3()
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Dim Zellen As String

Pfad = "D:\DeinPfad\"
Dateiname = "DeineDatei.xls"
Blatt = "DeinTabellenblatt"
Zellen = "B10" 'auch ein Bereich ist möglich: "B10:C20"

If GetDataClosedWB(Pfad, _
Dateiname, _
Blatt, _
Zellen, _
Worksheets("Tabelle1").Range("B10")) Then
MsgBox "Daten importiert"
End If
End Sub


Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -

Ähnliche fragen