Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: rechnen beim Verlassen einer Zelle per Makro

rechnen beim Verlassen einer Zelle per Makro
16.03.2013 18:33:39
Peter
Hallo Leute,
ich komme mal wieder nicht weiter !
Ich möchte im VBA Project "DieseArbeitsmappe" eine Funtion schreiben die mir nach verlassen einer Zelle einen Rechenvorgang auslöst.
z.B. A1 * B1 (Return) = C1, Courser - wechselt in die nächte Zelle
Ich habe versucht mit "Workbook_SheetSelectionChange(...)" etwas zu erreichen aber es klappt nicht so ich ich möchte. Der Rechenvorgang findet in der nächsten Zelle statt und nich in der verlassenen Zelle.
Vielleicht habt Ihr einen Tipp für mich.
Gruß, Peter

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja, jedes Mal die verlassene Zelle merken, ...
16.03.2013 19:04:32
Luc:-?
…Peter; ;-)
allerdings ist nicht ganz klar, wie die Zellberechnung ausgelöst wdn soll — unmittelbar nach Eintrag in die Zelle, also ihrer Änderung (Workbook_SheetChange bzw zum jeweiligen Blatt Worksheet_Change)? Sonst wäre die Vorzelle bei Eingabeabschluss mit [Return] unter _SelectionChange idR Target.Offset(0, -1), aber das ist zu unsicher. Besser Target in Globalvariabler merken bei _Change und Berechnung auslösen bei _SelectionChange oder gleich bei _Change (ohne merken).
Gruß + schöSo, Luc :-?

Anzeige
AW: rechnen beim Verlassen einer Zelle per Makro
16.03.2013 19:44:26
Tino
Hallo,
vieleicht so?!
kommt als Code in die Tabelle
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rng As Range, varErgebnis, lngOffset& 
Set rng = Intersect(Range("A:B"), Target) 
If rng Is Nothing Then Exit Sub 
 
Application.EnableEvents = False 
Application.ScreenUpdating = False 
On Error Resume Next 
For Each rng In rng.Cells 
    With rng 
        lngOffset = IIf(.Column = 1, 1, -1) 
        If .Value <> "" And IsNumeric(.Value) Then 
            If .Offset(, lngOffset).Value <> "" And IsNumeric(.Offset(, lngOffset).Value) Then 
 
'                'oder als Formel ******************************* 
                varErgebnis = "=RC[-2]*RC[-1]" 
 
'                'als Ergebnis *********************************** 
'                varErgebnis = .Value * .Offset(, lngOffset).Value 
                 
                If Err.Number <> 0 Then varErgebnis = "Error": Err.Clear 'Fehler 
             
            End If 
        End If 
        Cells(.Row, 3).FormulaR1C1 = varErgebnis 
        varErgebnis = Empty 
    End With 
Next rng 
 
Application.EnableEvents = True 
Application.ScreenUpdating = True 
End Sub 
 
Gruß Tino
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige