Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
344to348
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
344to348
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abhängigkeit von der Zelle, in der die Formel ist

Abhängigkeit von der Zelle, in der die Formel ist
02.12.2003 15:51:21
Ulli
Hallo,

ich hab ein kleines Problem, ich habe eine Funktion geschrieben, die mit verschiedenen Werten in Abhängigkeit von der Zelle, in der der Funktionsaufruf steht, etwas berechnen soll.

Also: wenn in Zelle (i j) mein Funktionsaufruf steht, dann brauche ich den Inhalt der Zellen (i j-1), (i, 3) und (1, j-1)

Ich habe die Bestimmung von i und j mit einem ActiveCell gelöst:


Function bereche()
Application.Volatile
i = ActiveCell.Row
j = ActiveCell.Column
wert1 = Cells(i, j - 1)
wert2 = Cells(i, 3)
wert3 = Cells(1, j - 1)
End Function


Leider kann man die Formel so nicht kopieren, weil sich ja dann die aktive Zelle ändert ... nicht so der Sinn der Sache.

Ich brauche also statt ActiveCell ein "Zelle, in der der Aufruf steht" oder so ähnlich ... leider finde ich die Hilfe nicht sonderlich aussagekräftig, wäre schön, wenn mir hier jemand helfen kann ...

Vielen Dank
Ulli

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abhängigkeit von der Zelle, in der die Formel ist
02.12.2003 16:32:21
Hans-Peter
Hallo Ulli,

du hast da zwei verschiedene Dinge durcheinander geworfen. Zwar hast du eine Funktion definiert, der Inhalt des Quelltextes ist aber in dieser Form nur für ein Makro richtig.
Es wäre hilfreich, wenn du genau beschreibst, was du vorhast, dann kann man besser helfen.

Grüße HP
AW: Abhängigkeit von der Zelle, in der die Formel ist
02.12.2003 16:51:28
Ulli
Hallo,

mmh, ich werds mal versuchen:

also ich will in der Zelle (i j) schreiben =berechne()
und dann soll er halt die Funktion (oder was auch immer) ausführen

dabei soll er dann in die Zellen (i j-1), (i, 3) und (1, j-1) gucken, sich die Werte von dort holen und dann noch was rechnen ...

Von mir aus rechne ich einfach die Werte aus den 3 Zellen zusammen, das würde für den Anfang reichen ...

also meine Funktion würde dann so aussehen:


Function bereche()
i = ActiveCell.Row
j = ActiveCell.Column
wert1 = Cells(i, j - 1)
wert2 = Cells(i, 3)
wert3 = Cells(1, j - 1)
berechne = wert1 + wert2 + wert3
End Function


Wenn man jetzt in der richtigen Zelle steht, funktioniert die Funktion auch, das Problem ist nur, wenn ich "nach unten ausfüllen" machen, ist die aktive Zelle ja weiterhin (i j) und somit wird diese als Bezug genommen (was natürlich nicht sein soll) ...

Ich hoffe das war jetzt verständlicher?

Vielen Dank
Ulli
Anzeige
AW: Abhängigkeit von der Zelle, in der die Formel ist
02.12.2003 17:05:33
Klaus-Dieter
Hallo Ulli,

Für dein Beispiel würde die Funktion etwa so aussehen:


Option Explicit
Function berech(a, b, c)
berech = a + b + c
End Function



Code eingefügt mit: Excel Code Jeanie

Die Funktion findest du dann im Funktionsassistent unter Benutzerdefiniert. Wie sie in die Tabelle eingefügt wird siehst du hier:

Anzeige
AW: Abhängigkeit von der Zelle, in der die Formel ist
02.12.2003 17:36:03
Ulli
Hallo,

erst mal danke für diese Variante, ich hätte es besser erklären sollen ...

So, wie deine Lösung ist, muß man die Parameter ja immer übergeben. Das würde ich gerne vermeiden, weil ich ja sonst jedesmal diese 3 Zellen, die ich brauche, angeben muß.

meine Function heißt getBonus und berechnet sich z.B.
für das Feld 3E aus den Feldern 3D, 1D und 3C
also in diesem Fall 4, IND und 1
für das Feld 4E aus den Feldern 4D, 1D und 4C
also in diesem Fall 18, SEA und 1
für das Feld 4G aus den Feldern 4F, 1F und 4C
also in diesem Fall 25, SEA und 2
usw.

Leider finde ich meine 3 Werte also nicht in einer Zeile nebeneinander ...

Da diese Feldpositionen nun immer relativ vom Funktionsaufruf liegen (nämlich in der gleichen Zeile bzw. Spalte), möchte ich diese sozusagen relativ in der Funktion verankern und nicht jedesmal neu angeben müssen.

Ist ein bißchen schwer zu beschreiben, tut mir leid ...

So sieht meine Tabelle aus:

Anzeige
AW: Abhängigkeit von der Zelle, in der die Formel ist
03.12.2003 19:41:00
Klaus-Dieter
Hallo Ulli,

ich fürchte, ich habe das nicht verstanden. Da sonst niemend geantwortet hat, bin ich offenbar nicht der einzige, dem das so geht.
Kannst du die Funktion, die in deinem Beispiel angezeigt wird, [=getBonus()] mal vorstellen? Auch weiß ich nicht, was die Buchstaben bedeuten.

Gruß Klaus-Dieter


AW: Abhängigkeit von der Zelle, in der die Formel ist
03.12.2003 22:14:10
Ulli
Hallo,

mmh, schade, ich find mein Problem ganz klar ;-) Ok ich versuchs mal:

Es handelt sich um Mannschaften (das sind die Buchstabenkombinationen), Spieltage (die Zahlen in der erste Zeile) und die Punkte, die die Mannschaft in dem Spiel gemacht hat.
Aus diesen Angaben soll jetzt ein Bonus ermittelt werden. Dieser berechnet sich aus dem Ranking des jeweiligen Gegners. (Also bei einem schweren Gegner ein hoher Bonus, bei einem leichten Gegner keiner)

Dazu muß die Funktion getBonus sich den Gegner der Mannschaft am jeweiligen Spieltag aus einer anderen Tabelle holen, dann in noch einer anderen Tabelle deren (an diesem Tag) aktuelles Ranking heraussuchen und dann den Wert berechnen ...

Ich kann gerne den ganzen Quelltext posten, is halt nur ein bissl kompliziert, dadurch daß so viele Tabellen mit im Spiel sind ... sag bescheid, wenn ich das machen soll ...

Meine momentane Lösung sieht so aus, daß ich eine Funktion


Function getBonus(points, team, day)
Application.Volatile
rating = getTeamRating(getOpponent(team, day), day)
If rating > 0 Then
getBonus = points * ((32 - rating) / 62 - 1 / 4)
Else
getBonus = 0
End If
End Function


habe, und dann in der Tabelle z.B. in Feld 3E =getBonus(3D, 3C, 1) aufrufe
so kann man immerhin ein "nach unten ausfüllen" in der ganzen Spalte machen, ohne viel ändern zu müssen

Nun würde ich gerne die 1 aber durch die entsprechende Zellreferenz ersetzen

Schreibe ich aber =getBonus(3D, 3C, 1C), dann würde beim nach unter kopieren als letztes Argument ein "2C" erscheinen - wo natürlich nicht die entsprechende 1 steht ...

Deshalb dachte ich, könnte man vielleicht die Zellposition im Quelltext verankern - nämlich dort wo der Funktionsaufruf stattfindet (also Zelle 3E) eine Zelle nach links und in der ersten Zeile befindet sich der Spieltag

Vielleicht geht das auch gar nicht?

Vielen Dank & viele Grüße
Ulli
Anzeige
AW: Abhängigkeit von der Zelle, in der die Formel ist
04.12.2003 22:26:17
Ulli
Hallo Klaus-Dieter,

ja, so gehts natürlich auch ;-) Mmh, da hätte ich auch selbst drauf kommen können, da hab ich wohl viel zu kompliziert gedacht ... jetzt noch im 2. Argument die Spalte fixieren, dann isses das ... also getBonus(3D, 3$C, $1D)

Danke!

Hab jetzt noch eine alternative Lösung, wo man nur ein Argument übergeben muß (3D), aber so isses natürlich schöner ... ;-)

Viele Grüße
Ulli
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige