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

Forumthread: Zellen per Formel aktualisieren Wenn, Außer...

Zellen per Formel aktualisieren Wenn, Außer...
Chris
Hallo zusammen,
ich versuche in Excel folgendes per Formel zu lösen:
In A1 stehen Werte. Zelle B1 soll die Werte aus A1 immer aktualisieren, AUßER in Zelle A1 steht "k", dann soll in Zelle B1 der letzte aktualisierte Wert erhalten bleiben. So:
A1: 1 B1:1
A1: 2 B1: 2
A1: k B1: 2
A1: 3 B1: 3
A1: k B1: 3
Gleichzeitig soll in Zelle C1 die Werte addiert werden, die in B1 NICHT aktualisiert worden sind. In diesem Fall:
C1 = 3+2 = 5
Lässt sich das per Formel lösen? Oder nur VBA?
Gruß,
Chris
Anzeige
AW: Zellen per Formel aktualisieren Wenn, Außer...
21.02.2012 06:02:45
Hajo_Zi
Hallo Chris,
das geht nur per VBA. Zu K kannst Du keinen Wert addieren. Ist es in B1 eine Eingabe?

AW: Zellen per Formel aktualisieren Wenn, Außer...
21.02.2012 07:35:11
Chris
Hallo Hajo,
Nein, B1 ist keine Eingabe, das ist die Zelle, die automatisch aktualisiert wird, außer wenn in A1 k steht.
Hast du einen vba Vorschlag ?
Gruß,
Chris
Anzeige
AW: Zellen per Formel aktualisieren Wenn, Außer...
21.02.2012 09:39:05
Timo
Hallo Chris,
hier mal ein Vorschlag, der in das Tabellenmodul eingetragen werden muß:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then Exit Sub
Dim iWert As Integer
Dim iSumme As Integer
Application.EnableEvents = False
If Target.Value = "k" Then
iSumme = Range("C1").Value
iSumme = iSumme + Range("B1").Value
Range("C1").Value = iSumme
Else
Range("B1").Value = Target.Value
End If
Application.EnableEvents = True
End Sub
Gruß
Timo
Anzeige
AW: Zellen per Formel aktualisieren Wenn, Außer...
21.02.2012 13:48:11
Chris
Hallo Timo,
genau so. Danke :-)
AW: Zellen per Formel aktualisieren Wenn, Außer...
21.02.2012 20:38:34
Chris
Hi Timo,
ich brauche doch noch eine Veränderung: Ich addiere mit deinem Makro Kommazahlen, 0.10, 1.10
usw.
Ich stelle fest, dass VBA aufrundet bzw. abrunden. Ich brauche das so, dass auch die Kommazahlen genau (!) addiert werden.
Nochmals danke,
Chris
Anzeige
AW: Zellen per Formel aktualisieren Wenn, Außer...
22.02.2012 09:17:00
Timo
Hi Chris,
dann so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then Exit Sub
Dim dSumme As Double
Application.EnableEvents = False
If Target.Value = "k" Then
dSumme= Range("C1").Value
dSumme= dSumme+ Range("B1").Value
Range("C1").Value = dSumme
Else
Range("B1").Value = Target.Value
End If
Application.EnableEvents = True
End Sub
Schlüssel dabei ist der angegebene Variablentyp: Integer steht für Ganzzalen und Double wird bei Kommazahlen verwendet.
Gruß
Timo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen per Formel aktualisieren in Excel: Wenn, Außer...


Schritt-für-Schritt-Anleitung

Um eine Excel-Zelle zu aktualisieren, außer wenn ein bestimmter Wert (z.B. "k") in einer anderen Zelle steht, kannst Du das folgende VBA-Skript verwenden. Diese Methode ist notwendig, da die Standard-Excel-Funktionen nicht in der Lage sind, dieses Verhalten zu erzielen.

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

  2. Füge ein neues Modul hinzu, indem Du im Menü auf Einfügen > Modul klickst.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    Dim dSumme As Double
    Application.EnableEvents = False
    If Target.Value = "k" Then
       dSumme = Range("C1").Value
       dSumme = dSumme + Range("B1").Value
       Range("C1").Value = dSumme
    Else
       Range("B1").Value = Target.Value
    End If
    Application.EnableEvents = True
    End Sub
  4. Schließe den VBA-Editor und kehre zu deiner Excel-Arbeitsmappe zurück.

  5. Teste das Skript, indem Du verschiedene Werte in Zelle A1 eingibst.


Häufige Fehler und Lösungen

  • Fehler: "Excel zellen aktualisieren sich nicht"
    Wenn die Zellen nicht aktualisiert werden, stelle sicher, dass Du die Application.EnableEvents-Eigenschaft korrekt verwendest. Diese sollte auf False gesetzt werden, während Du die Werte aktualisierst, und danach wieder auf True.

  • Fehler: Falsche Addition von Kommazahlen
    Wenn Du Kommazahlen addieren möchtest, stelle sicher, dass Du Double anstelle von Integer verwendest. Der Code oben verwendet bereits Double für die Variable dSumme.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, gibt es alternative Ansätze:

  1. Verwenden von Excel-Formeln:
    Du kannst die Formel in Zelle B1 so gestalten, dass sie den letzten Wert zurückgibt, wenn "k" eingegeben wird, jedoch wird dies etwas komplizierter und erfordert möglicherweise Hilfsspalten.

  2. Verwendung von Excel-Add-Ins:
    Es gibt spezielle Excel-Add-Ins, die erweiterte Funktionen anbieten und möglicherweise eine Lösung für Deine Anforderungen bereitstellen.


Praktische Beispiele

Angenommen, Du hast folgende Werte in A1:

A1 B1 C1
1 1 0
2 2 1
k 2 3
3 3 5
k 3 5

In diesem Beispiel wird B1 nur aktualisiert, wenn A1 keinen "k"-Wert enthält. C1 summiert nur die Werte von B1, die nicht aktualisiert wurden.


Tipps für Profis

  • Nutze Worksheet_Change effizient:
    Diese Methode kann auch für andere Zellen angepasst werden, indem Du die Adresse in Target.Address änderst.

  • Debugging:
    Nutze Debug.Print innerhalb des VBA-Codes, um Werte zu überprüfen, falls Du auf unerwartete Ergebnisse stößt.

  • Optimierung von VBA:
    Achte darauf, dass der VBA-Code möglichst effizient ist, vor allem, wenn Du mit großen Datenmengen arbeitest.


FAQ: Häufige Fragen

1. Kann ich diese Methode ohne VBA verwenden?
Nein, die gewünschte Funktionalität ist nur über VBA möglich, da Excel-Formeln nicht in der Lage sind, den Zustand einer Zelle zu speichern.

2. Was passiert, wenn ich die Excel-Datei schließe?
Die eingegebenen Werte in den Zellen bleiben erhalten, jedoch werden die VBA-Skripte nicht automatisch gespeichert, wenn Du die Datei nicht im .xlsm-Format speicherst.

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