Hi Daro,
hab das gerade mit einem makro versucht. das klappt zwar,
erfüllt aber nicht den richtigen zweck!!
wenn ich mit den makros arbeite, dann steht in den jeweiligen
excelzellen trotzdem die formel. das soll eigentlich nicht
sein!!
jain, so grundsätzlich stimmt das nicht, der Code entscheidet was geschieht.
ich versuch es dann nochmal genauer zu erklären
Sehr gute Idee *find*
in A1 steht function (beispiel)
und diese funktion soll dann folgendes berechnen:
D3=3+4
C2=15-D3
B1=5*C2
A1=1+B1
genauer in dieser reihenfoge soll es berechnet werden und es
sollen für jede zelle die ergebnisse in der jeweiligen Zelle
auftauchen!
Mal grundsätzlich, Makro ist ja nur ein Oberbegriff für alles Mögliche was automatisiert ablaüft.
In Excel-Vba steckt dahinter Vba-Code der aufgerufen wird.
Dieser Vba-Code steht immer in einer Prozedur, diese wiederum in einem Modul. Es gibt drei Prozedurarten in Excel-Vba: Sub, Function, Property.
Properties lasse ich mal weg, sieht man eh selten, wenn überhaupt sah ich die bisher nur in Klassenmodulen. Und Klassenmodule ist die Königsklasse in Vba, nix für Vba-Beginner.
Wesentlicher Unterschied zwischen einer Sub und einer Function ist, eine Function liefert immer einen Rückgabewert, eine Sub nicht.
Von einer Ecelzelle aus kannst du heutzutage direkt keine Sub starten.
Aber du kannst dort eine selbstgeschriebene Funktion eintragen.
Das ist dann identisch wie wenn du in einer Zelle =SUMME(A1:A5) einträgst.
Es ist unmöglich mit einer in einer Zelle stehenden Funktion in eine andere Zelle etwas eintragen zu lassen.
Zurück zu deiner Anfrage, um dies zu lösen:
D3=3+4
C2=15-D3
B1=5*C2
A1=1+B1
könntest du in A1,B1,C2,D3 jeweils eine unterschiedliche Funktion schreiben/aufrufen.
also in A1:
=Fkt1(B1)
mit dem Code der Function:
Function Fkt1(Zelle as Range) as integer
Fkt1=Zelle.Value+1
End Function
Oder du startest eine Sub, die in alle vier Zellen die Ergebnisse reinschreibt.
Sub Alle()
Range(„D3“)=3+4
Range(„C2“)=15-Range(„D3“)
usw.
End Sub
Bei dieser Sub ist die Reihenfolge der Berechnungen zu beachten.
So oder so, das geht so fix, sehen wirst du da nix, nichtmal Bruce Lee würd da groß was sehen *gg*
Gruß
Reinhard