Zum Inhalt springen

MS Office (ab 97) / Excel / VBA


piomode1

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...