piomode1 Geschrieben 5. Januar 2005 Teilen Geschrieben 5. Januar 2005 Hi, Leute! Ich möchte eine VBA-Funktion schreiben, die sich immer den Wert aus der Zelle "Zwei rauf, drei links" zieht. Das Quell-Zelle soll also relativ gesehen immer X Zeilen ober- oder unterhalb und Y Spalten rechts oder links der Formel sein. Die Ziel-"Relationen" sollen aus bestimmten (absoluten) Zellen (Z.B. A1 und A2) gezogen werden, veränderbar durch den Benutzer sein und dadurch eine Neuberechnung der Funktionen bewirken. Und diese Funktion soll (selbsterständlich) in verschiedenen Zellen zur Anwendung kommen. ( Auf die Laufzeit-Fehlerbehandlung, zu denen es unweigerlich kommt wenn ich diese Funktion in die ersten beiden Zeilen bzw. ersten drei Spalten schreibe, braucht nicht eingegangen zu werden. ) Z.B. habe ich meine Funktion function GetData(lngZeile as Long, lngSpalte as Long) as Double ... End function In beliebige Zellen (außer A1 und A2 und fehlerverursachende, s.o.) soll nun z.B. eingetragen werden können: =GetData(A1;A2) Z.B. steht in Zelle A1: -2 und in A2: -3 (--> zwei nach oben, drei nach links). Dann soll sich Zelle D5 mit dieser Funktion den Wert aus Zelle A3 ziehen, Zelle G27 den Wert aus Zelle D25, usw. Mittlerweile habe ich eine Lösung gefunden, die so aussieht, daß ich der Funktion zwei Parameter übergebe ( Zeile() und Spalte() ) und zwei Parameter in Form von Zahlen, die das Ziel darstellen: =GetData(Spalte(); Zeile(); A1; A2) In der VBA-Funktion kann ich damit berechnen aus welcher Zelle ich den Wert ziehen soll. --> Hat also Zeit... ABER... wenn jemand eine einfachere Lösung kennt, die die Übergabe der Zeile() und Spalte() überflüssig macht, würde ich mich sehr freuen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
janlutmeh Geschrieben 5. Januar 2005 Teilen Geschrieben 5. Januar 2005 Falls ich Dich richtig verstanden habe, sollte der Z1S1 Bezug das richtige für Dich sein. Wird in der Regel bei der Makro-Aufzeichnung genutzt, bzw. über die relativen Bezüge bei der Aufzeichnung aktiviert. Gibt einfach den relativen Bezug von der aktiven Zelle aus an. Infos dazu auch in der Office-Hilfe, einfach nach z1s1 suchen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
piomode1 Geschrieben 6. Januar 2005 Autor Teilen Geschrieben 6. Januar 2005 Hi, janlutmeh! Deine Aussgae ist vollkommen richtig: Wenn ich während einer Makroaufzeichnung eine Zelle eingeben, wird die Adr. in der "RC"-Notation hinterlegt. Es wird eine Sub erstellt, die mir beim Aufruf die entspr. Formel in die Zelle(n) schreibt. Gut: Ich kann den "RC"-String zusammensetzen und alle relevanten Zellen damit füllen. Nachteil: Wenn sich der Zielbezug durch Benutzereingaben ändert, muß diese Sub erneut (manuell) ausgeführt werden. Darum brauche ich eine Function, die automatisch neu berechnet wird. Auf jeden Fall: Vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.