Ergebnisse aktualisieren

Bild

Betrifft: Ergebnisse aktualisieren
von: toni
Geschrieben am: 24.11.2003 16:55:22

Hallo VBA'ler,

habe heute um 14.15 schon mal mein Problem geschildert. Vielleicht war die Schilderung etwas unverständlich.
Ich versuche es mal so:

In den Zellen "A1:K1" stehen Werte, mit denen ich rechne. Gerechnet werden darf erst, wenn alle Felder ("A1:K1") gefüllt sind, sonst erscheint eine Fehlermeldung.
Wie bekomme ich es hin, dass das Ergebniss in Zelle "L1" automatisch aktualisiert wird, wenn Werte in "A1:K1" nachträglich verändert werden (in "L1" ist keine Formel hinterlegt. Ich rechne in VBA (Prozedur 'Rechnen')).

Das ganze soll zudem nicht nur für Zeile 1 gelten sondern für insgesamt 20 Zeilen. Das heisst, wenn ich z. B. nachträglich, den Wert in "B5" verändere, soll automatisch das Ergebnis in "L5" aktualisiert werden.

Vielleicht kann mir ja jemand auf die Sprünge helfen...

Ciao

Toni

Bild


Betrifft: AW: Ergebnisse aktualisieren
von: Martial
Geschrieben am: 24.11.2003 17:25:08

Hi Toni

ich glaube, du kannst einfach in deiner Prozedur 'Rechnen' ein:
application.volatile
hineinstellen.
Damit wird bei jeder Änderung des Blattes die Berechnung wiederholt. Das Ding hat allerdings so seine Tücken, vor allem bei grösseren Dateien.

Besser ist es vermutlich, wenn du eine Funktion 'Rechnen' machst und einen Bereich übergibst.
Diese kannst du dann wie alle Excel-Formeln in einer Zelle benutzen (und sie sollte sich auch aktualisieren ) Beispiel für Summe:


Function Rechnen(Bereich As Range)
Dim cell, summe
summe = 0
For Each cell In Bereich
summe = summe + cell.Value
Next cell
Rechnen = summe
End Function


Gruss, Martial


Bild


Betrifft: Nachtrag ;-)
von: Martial
Geschrieben am: 24.11.2003 17:41:12

Habe dich vermutlich falsch verstanden.

Um mit der Prozedur zu arbeiten, musst du das worksheet_change Ereignis bemühen:
das Argument Target gibt dir an, welche Zelle verändert wurde. In Abhängigkeit davon wirst du deine Prozedur aufrufen müssen.



Private Sub Worksheet_Change(ByVal Target As Excel.Range)
End Sub


Gruss, Martial


Bild


Betrifft: AW: Nachtrag ;-)
von: toni
Geschrieben am: 25.11.2003 15:35:43

Sorry Martial,

bin erst jetzt dazu gekommen Dir zu antworten.
Mit Worksheet_Change geht es ganz einfach!!!
Habe am Anfang wohl etwas zu hastig gelesen und hab's mit Worksheet_SelectionChange versucht. Das hat dann nicht so gut geklappt...
Wer lesen kann, ist klar im Vorteil!!!

Schönen Dank noch mal für Deine Hilfe.

Ciao, Toni


Bild

Beiträge aus den Excel-Beispielen zum Thema " Ergebnisse aktualisieren"