3.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo.
Hab ein ähnliches Problem wie schon mal beschrieben, kanns aber nicht umsetzen.

Wenn Feld B56 "Gewährleistungsdauer 24 Monate" soll Feld D56 mit einem Preis manuell beschrieben werden.
Wenn Feld B56 auf "Gewährleistungsdauer 12 Monate" geändert wird, soll Feld D56 den Wert aus C56 ziehen.


Kann mir jemand den passenden VB Befehl durchgeben? wär echt nett.

Besten Dank und Grüße
Benny

15 Antworten

0 Punkte
Beantwortet von
Hallo Daeschle,

dazu brauchst du kein VBA. Mach's über die Datenüberprüfung.

- in D56 schreibst du zunächst =WENN(B56="Gewährleistungsdauer 24 Monate";"";C56)
- Dann Daten --> Datenüberprüfung --> Formel =B56="Gewährleistungsdauer 24 Monate"
- Als Fehlermeldung z.B. "Schalten Sie zur manuellen Eingabe auf 24 Monate um."

Jetzt kann die vorgegebene Formel nur überschrieben werden wenn 24 Monate ausgewählt ist.

Übrigens: Unter dem von dir angebenen Link zur Testdatei kommt eine Fehlermeldung "Not found"

Gruß Mr. K.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
in der Datei kann es nicht gehen. Eine XLSX Datei enthält kein VBA. Das muss schon eine XLSM Datei sein.

Gruß Hajo
0 Punkte
Beantwortet von
Excel-King.

Die Formel soll nie überschrieben werden. Soll immer wieder gehen. Allein mit Excel hätte ich es schon geschafft.

Hajo.
Hatte es zuvor als XLSM Datei gespeichert. Da gings aber auch nicht :-(
0 Punkte
Beantwortet von
Wenn man von 24 auf 12 ändert, soll der vorher eingegebene Wert gelöscht werden

Ach so! Da hab ich mal wieder nicht weit genug gelesen. Dann eben doch Makro. Ersetze in Hajos Code

Else
Target.ClearContents

durch

ElseIf Target = "Gewährleistungsdauer 24 Monate" Then
Range("D56").ClearContents

dann klappts.

Zu deiner anderen Frage: Der gesamte Code sollte im VBA-Editor (Alt + F11) unter der Tabelle (z.b. Tabelle 1) eingefügt werden.

Mr. K.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
es gibt ja auch XLS Dateien mit Makro. Das Problem ist ja nicht auf Version >=2007 begrenzt.

Gruß Hajo
...