Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

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

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 :-?

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

40 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige