AW: Daten von mehreren Tabellen in ein einfügen.
02.01.2008 15:52:00
mehreren
Hallo Bernd,
sollche dynamischen Verweise auf andere Tabellen/Zellenbereiche kann man mit der Funktion INDIREKT realiiseren. Diese Funktion liefert aber nur Ergebnisse bei geöffneten Arbeitsmappen/Dateien bzw. wenn INDIREKT auf andere Tabellen innerhalb der Datei verweist.
Formel kann dann z.B. so aussehen:
=WENN(ISTFEHLER(SVERWEIS(B13;INDIREKT("'[Test1.xls]" & F3 &
"'!$1:$65536");2;FALSCH));"NV";SVERWEIS(B13;
INDIREKT("'[Test1.xls]" & F3 & "'!$1:$65536");2;FALSCH))
Der Tabellenname steht in diesem Beispiel in F3.
Da in deiner Anwendung die Datei aus der SVERWEIS die Daten holen soll geschlossen ist, funktioniert dies leider nicht.
In deinem Fall müßte man ggf. die Formeln in den betroffenen Zellen per Makro anpassen, wenn der Tabellenname in den Zellen angepast wird. Ein solches Makro muss jedoch genau auf die Datenstruktur in deiner Tabelle zugeschnitten werden. Nachfolgend ein Beispiel; dabei wird der Tabellenname in eine Zelle im Bereich D13:D1000 eingegeben und die Formel in der gleichen Zeile in Spalte C (3) angepasst.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Not Intersect(Target, Me.Range("D13:D1000")) Is Nothing And Target.Cells.Count = 1 Then
'Formel in Spalte C anpassen an Tabelle in Spalte D
Set Zelle = Cells(Target.Row, 3)
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[0]C2,'K:\Statistik\Krauß\Roche\[Krauß2008.xls]" _
& Target.Text & "'!R1:R65536,2,FALSE)), """",(VLOOKUP(R[0]C2," _
& "'K:\Statistik\Krauß\Roche\[Krauß2008.xls]" _
& Target.Text & "'!R1:R65536,2,FALSE)))"
End If
End Sub