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

Automatisch neu rechnen

Automatisch neu rechnen
24.11.2003 14:15:05
toni
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch neu rechnen
25.11.2003 16:11:45
Nicolaus
Hallo,
binde dein Makro in ein Userform ein und hänge deine
Rechenroutine an das Change-Ereignis der einzelnen Felder

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige