Hallo Lutz,
erstens solltest du mit BEREICH.VERSCHIEBEN nur einen Bereichsnamen für die Daten anlegen. Nicht diese Formel in allen Zellen verwenden, das macht nur Schwierigkeiten.
Was ist mit diesem Term mit Zeile? In Zeile sollte eigentlich eine Zahl stehen oder auf eine Zahl verwiesen werden.
Gibt dieser Ausdruck "'E:\OneDrive\Arbeit\Handy-Tests\Z_Handytest-DB.xlsm'!Gesamtpunktzahl" eine Zahl zurück? Außerdem sollte die Ausgangszelle dann $A$3 sein, wenn die Daten erst in Zeile 3 beginnen.
Ich weiß nicht wie deine Daten vorliegen und kann daher auch nicht sagen wo der Fehler liegt.
Ich habe für Andreas einen Ordner mit 2 Quelldateien und der Zieldatei nach OneDrive hochgeladen und dort ist auch der Fehler aufgetreten. Wenn man die Namen und die Formeln in den richtigen Dateien und am richtigen Speicherort einfügt, ist alles in Ordnung.
Wenn man die Dateien dann verschiebt, tritt der Fehler auf.
Schau mal hier nach dem Ordner "Bereich_Verschieben" und lade ihn dir herunter. Sehr wahrscheinlich bekommst du dann den gleichen Fehler wie Andreas, aber du kannst in den Quellmappen sehen, wie der Name angelegt ist und in der Zielmappe, wie die Formel gestaltet
ist.
BEREICH.VERSCHIEBEN hat folgende Argumente:
Ausgangszelle, Versatz in Zeilenrichtung, Versatz in Spaltenrichtung, Höhe in Zeilenrichtung, Breite in Spaltenrichtung
Wenn also eine Tabelle in A1 anfängt, lautet die Formel
=BEREICH.VERSCHIEBEN($A$1;;;Anzahl2($A:$A);ANZAHL2($1:$1))
Nach der Ausgangszelle kommen drei Semikolon ohne Werte dazwischen, da es keinen Versatz in den Richtungen gibt. Dann kommt ANZAHL2($A:$A), das die Höhe durch zählen der belegten Zellen ermittelt und ANZAHL2($1:$1) das die Breite ermittelt.
Wenn deine Daten an anderer Stelle anfangen, musst du auch mit dem Versatz arbeiten. Du musst auch bedenken, dann der Term mit ANZAHL2
alle Zellen zählt. Wenn du also noch Daten in der entsprechenden Zeile oder Spalte hast außerhalb der gewünschten Tabelle, musst du diese Zellen abziehen. Der Bereich wird auch nicht korrekt beschrieben,
wenn du leere Zeilen oder Spalten in der Tabelle hast. In diesem Fall müsste man ANZAHL2 mit einer Funktion ersetzen, die die letzte belegte Zelle in der Spalte oder der Zeile ermittelt.
Erstelle mit BEREICH.VERSCHIEBEN nur den Bereichsnamen. Du kannst dann im Namensmanager den Namen anwählen und den Cursor in diese Formel stellen. Der Bereich, den der Namen beschreibt, bekommt dann einen Laufrahmen. Daran kannst du dann sehen, ob die Formel
den korrekten Bereich umschreibt.
Da das Ganze nicht ganz so einfach ist, wollte ich von dir ja auch wenigstens zwei abgespeckte Beispielmappen.
Willst du dich nicht mit der VBA-Lösung vertraut machen? Das ist nicht so schwierig wie du das beschrieben hast. Solch ein "normales" Makro läuft in allen Excel-Versionen.
Claus