Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1124to1128
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
Inhaltsverzeichnis

indirekt

indirekt
gerd
Ich habe mit Indirekt Adressen in einem externen workbook angesprochen, wenn das workbook nicht offen ist kommt die Fehlermeldung #Bezug, kann man das lösen, ohne das wb zu öffnen. Grüße Gerd

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

Betreff
Benutzer
Anzeige
AW: indirekt
19.12.2009 09:49:42
Hajo_Zi
Hallo Gerd,
NEIN. Nicht mit INDIREKT()

geht nur wenn offen...
19.12.2009 09:56:33
Tino
Hallo,
indirekte Bereichsverweise auf andere Dateien wie (Indirekt oder Bereich.Verschieben)
funktionieren nur wenn die Datei geöffnet ist, bei geschlossener Datei funktionieren nur die direkten Bezüge.
Sonst müsstest Du mit VBA an die Sache gehen.
Gruß Tino
hier eine VBA Version mit Function...
19.12.2009 10:43:51
Tino
Hallo,
hier mal was mit VBA.
In eine Modul kommt dieser Code
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long, ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
 
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long) As Long

Public varErgebnis As Variant, BerechneZelle As Range, strSubZiel$
Public hTimer As Long

Function IndirekterVerweis(strZiel$, rngAktBezug As Range)

If IsEmpty(varErgebnis) Then
 Set BerechneZelle = rngAktBezug
 strSubZiel = strZiel
 hTimer = SetTimer(0, 0, 10, AddressOf LeseWert)
 Exit Function
End If

IndirekterVerweis = varErgebnis
End Function

Sub LeseWert()
KillTimer 0, hTimer
varErgebnis = ExecuteExcel4Macro(strSubZiel)
BerechneZelle.FormulaLocal = BerechneZelle.FormulaLocal
Set BerechneZelle = Nothing
varErgebnis = Empty
strSubZiel = ""
End Sub
In eine Zelle schreibst Du diese Formel.
 A
1rot, grün, blau

Formeln der Tabelle
ZelleFormel
A1=IndirekterVerweis("'E:\1 Forum\[TestMehr.xls]Tabelle1'!R3C2";A1)

Erster Parameter ist die Indirekte Adresse zu der Datei (beachte R1C1 Schreibweise)
der zweite Wert ist die Zelle in der sich die Formel befindet.
Bei VBA Gut solltest Du aber schnell den Durchblick haben.
Gruß Tino
Anzeige
für A1 Schreibweise...
19.12.2009 10:54:01
Tino
Hallo,
wenn Du die Sub LeseWerte durch diese ersetzt,
Sub LeseWert()
Dim sZelle$
KillTimer 0, hTimer

'R1C1 Bezug erstellen 
sZelle = Right$(strSubZiel, Len(strSubZiel) - InStrRev(strSubZiel, "!"))
sZelle = Range(sZelle).Address(, , xlR1C1)
strSubZiel = Left$(strSubZiel, InStrRev(strSubZiel, "!")) & sZelle

varErgebnis = ExecuteExcel4Macro(strSubZiel)
BerechneZelle.FormulaLocal = BerechneZelle.FormulaLocal

Set BerechneZelle = Nothing
varErgebnis = Empty
strSubZiel = ""

End Sub
kannst Du auch die A1 Schreibweise verwenden.
 A
1rot, grün, blau

Formeln der Tabelle
ZelleFormel
A1=IndirekterVerweis("'E:\1 Forum\[TestMehr.xls]Tabelle1'!B3";A1)

Gruß Tino
Anzeige
Anmerkung ...
19.12.2009 14:50:00
Tino
Hallo,
dies ist aber nur für maximal zwei Zellen geeignet.
Besser ist es diese Informationen rein über VBA auszulesen,
dazu kann man ja auch die ExecuteExcel4Macro-Methode verwenden um die Datei nicht zu öffnen.
Wenn es sehr viele Daten sind, ist es aber besser die Datei zuvor zu öffnen um den Lesevorgang zu beschleunigen.
Gruß Tino
AW: Anmerkung ...
20.12.2009 14:37:22
gerd
Herzlichen Dank allen, es hilft !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige