Herbers Excel-Forum - das Archiv

Automatisch neu rechnen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Automatisch neu rechnen
von: toni
Geschrieben am: 24.11.2003 14:15:05
Hallo VBA'ler,

habe folgendes Problem:
In ein Excelsheet gebe ich Werte ein mit denen dann gerechnet werden soll.
Beispiel:
B7 = 5
C7 = Garage
D7 = 22
...
H7 = Ziegel
I7 = ... (hier soll das Ergebnis der Berechnung aus B7 bis H7 stehen)

B8 = 12
...
usw.

Zur Zeit rechne ich in dem Moment wenn z.B. die Zelle I7 vom Anwender aktiviert wird und keine Zelle in der entsprechenden Zeile leer ist:



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set RaBereich = Range("I7:I26")
If Not Intersect(Range(Target.Address), RaBereich _
Is Nothing Then
Set rng = Range(Target.Offset(0, -1), Target.Offset(0, -6))
cnt = WorksheetFunction.CountBlank(rng)
If cnt > 0 Then
MsgBox "Um den  Neuwert berechnen zu können," & vbCrLf & _
"müssen die ersten sieben Felder dieser Zeile gefüllt sein." _
, vbInformation, "Info"
Else
'hier beginnt Rechnung
Call Rechnen
'hier endet die Rechnung
End If
End If
Set RaBereich = Nothing
Das klappt soweit prima.
Nun kann es aber sein, dass der Anwender später z.B. den Wert aus B7 verändert. In diesem Fall möchte ich erreichen, dass das Ergebnis in I7 automatisch korrigiert wird und nicht erst wenn die Zelle I7 wieder angeklickt wird.
Da ich in der Prozedur 'Rechnen' zur Zeit mit ActiveCell und Offset arbeite, bekomme ich das ganze einfach nicht auf die Reihe...
Muss ich 'Rechnen' ändern oder geht es auch anders?
Hoffentlich kann mir jemand helfen
Sub Rechnen()
Vgebnutz = ActiveCell.Offset(0, -6).Value
Vlaenge = ActiveCell.Offset(0, -5).Value
Vbreite = ActiveCell.Offset(0, -4).Value
Vhoehe = ActiveCell.Offset(0, -3).Value
Vwand = ActiveCell.Offset(0, -2).Value
Vdach = ActiveCell.Offset(0, -1).Value
sumqm = Vlaenge * Vbreite
If Vgebnutz = "Garage" Then
bas1 = 300
bas2 = 400
bas3 = 500
End if
sumqm = Vlaenge * Vbreite
ActiveCell.Value = sumgesamt
End Sub



Ciao

Toni
Bild

Betrifft: AW: Automatisch neu rechnen
von: Nicolaus
Geschrieben am: 25.11.2003 16:11:45
Hallo,
binde dein Makro in ein Userform ein und hänge deine
Rechenroutine an das Change-Ereignis der einzelnen Felder
Bild
Excel-Beispiele zum Thema " Automatisch neu rechnen"
Automatische Datumformatierung unterdrücken Automatisch Sicherungsdatei erstellen
Automatisches Komplettieren einer Zelleingabe Zelleingaben automatisch auf volle 1,2-Teile runden
Tabelle nach Datumseintrag automatisch sortieren Eingaben in B:D automatisch mit 6 multiplizieren
Zelleingabe automatisch in Kopfzeile übernehmen Nach Zelleingabe automatische Sortierung
Automatische Sortierung bei Zelleintrag Min- und Max-Werte automatisch markieren