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

Forumthread: Eingabe Wert - Nachbarzelle addieren und leeren

Eingabe Wert - Nachbarzelle addieren und leeren
21.01.2020 07:46:31
Michael
Guten Morgen an alle,
ich habe Heute folgendes Problem. Ich möchte gern eine fortlaufende Addition wie folgt erzielen.
In Zelle B2 soll immer der aktuelle Wert stehen - beginnend mit 0.
In Zelle B3 möchte ich einen Wert eingeben z.B. 212
Sobald ich die Enter Taste betätige soll er in der selben Zelle bleiben
und den Wert von B3 (212) zur Zelle B2 addieren. Bei -212 entsprechend abziehen.
gebe ich den nächsten Wert ein in B3 z.B. 46 und drücke Enter steht in B2 der Wert 258
sollte das mit Enter nicht gehen wäre auch ein Button statt Enter denkbar.
Geht so etwas umzusetzen?
Viele Grüße
Michael
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe Wert - Nachbarzelle addieren und leeren
21.01.2020 08:18:20
SH95
Guten Morgen Michael,
folgenden Code fügst du im VBA in dem gewünschten Tabellenblatt ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$4" Then
With Sheets("Tabelle1")    'hier deinen Tabellennamen eingeben
.Range("B2") = .Range("B2") + .Range("B3")
.Range("B3").Select
End With
End If
End Sub
Falls dein Tabellenblatt nicht "Tabelle1" heißt, musst du das noch ändern.
Es ist allerdings so, wenn du die Zelle B4 von Hand betätigst, löst das Makro auch aus.
Falls du es mit einem Button lösen willst, dann fügst du folgenden Code im VBA in ein Modul ein und weißt dieses Makro deinem Button zu:
Private Sub addieren()
With Sheets("Tabelle1")   'Hier musst du deinen Tabellennamen eingeben
.Range("B2") = .Range("B2") + .Range("B3")
.Range("B3").Select
End With
End Sub
Gruß
Stefan
Anzeige
AW: Eingabe Wert - Nachbarzelle addieren und leeren
21.01.2020 08:31:58
Matthias
Hi
Code gehört ins entsprechende Tabellenblatt
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B3").Address Then
Target.Offset(-1, 0) = Target.Offset(-1, 0) + Target
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Zellgültigkeit so einstellen das nur Zahlen erlaubt sind!
Sonst müsste noch eine Abfrage mehr in den Code.
Gruß Matthias
Anzeige
Gelöst und läuft wie gewünscht!
21.01.2020 15:47:25
Michael
Gelöst und läuft wie gewünscht!
Vielen Dank genau wie ich es brauch!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nachbarzelle addieren und leeren in Excel


Schritt-für-Schritt-Anleitung

Um Werte in Excel fortlaufend zu addieren und die Eingabezelle zu leeren, kannst du VBA verwenden. Folge diesen Schritten:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das gewünschte Tabellenblatt im Projekt-Explorer aus.

  3. Füge den folgenden Code in das Codefenster des Tabellenblatts ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("B3").Address Then
       Target.Offset(-1, 0) = Target.Offset(-1, 0) + Target
       Application.EnableEvents = False
       Target.ClearContents
       Application.EnableEvents = True
    End If
    End Sub
  4. Stelle sicher, dass die Zellgültigkeit für B3 so eingestellt ist, dass nur Zahlen erlaubt sind. Dies kannst du über Daten -> Datenüberprüfung tun.

  5. Speichere dein Dokument als .xlsm, um die Makros zu aktivieren.

Jetzt wird der Wert in Zelle B2 automatisch aktualisiert, wenn du einen Wert in B3 eingibst und die Eingabetaste drückst.


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft nicht.
    Lösung: Stelle sicher, dass die Makros in deiner Excel-Version aktiviert sind und dass du den Code im richtigen Tabellenblatt eingefügt hast.

  • Fehler: Die Zelle B3 wird nicht geleert.
    Lösung: Überprüfe den Code auf mögliche Fehler und stelle sicher, dass Application.EnableEvents korrekt gesetzt ist.

  • Tipp: Wenn du die Zelle nicht leeren möchtest, entferne die Zeile Target.ClearContents.


Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch eine einfache Formel nutzen, um Werte in einer anderen Zelle zu addieren. Du kannst beispielsweise in Zelle B2 die Formel =B2+B3 verwenden. Achte darauf, dass du die Formel manuell aktualisieren musst.

Eine weitere Möglichkeit, um Werte in derselben Zelle zu addieren, ist die Verwendung eines Buttons, der den VBA-Code ausführt, anstatt die Eingabetaste zu verwenden.


Praktische Beispiele

Angenommen, du möchtest in Zelle B2 mit 0 starten und in B3 mehrere Werte eingeben:

  1. Zelle B2: 0
  2. Zelle B3: 212 (drücke Enter, B2 wird 212)
  3. Zelle B3: 46 (drücke Enter, B2 wird 258)
  4. Zelle B3: -100 (drücke Enter, B2 wird 158)

Diese fortlaufende Addition ist mit dem oben beschriebenen VBA-Code einfach umzusetzen.


Tipps für Profis

  • Verwende benannte Bereiche: Dies kann die Lesbarkeit deines Codes und deiner Formeln verbessern.
  • Fehlerbehandlung im VBA: Implementiere On Error Resume Next, um Laufzeitfehler zu vermeiden.
  • Testen: Teste deine VBA-Anpassungen gründlich, bevor du sie in produktiven Tabellen verwendest.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen in B3 eingegeben werden?
Du kannst die Zellgültigkeit in Excel so einstellen, dass nur Zahlen erlaubt sind. Gehe zu Daten -> Datenüberprüfung und wähle die entsprechenden Optionen.

2. Funktioniert dies in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange die Makros aktiviert sind.

3. Kann ich die Zelle auch in einer anderen Tabelle addieren?
Ja, ändere einfach den Tabellennamen im Code entsprechend dem Namen deiner Tabelle.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige