Clever-Excel-Forum

Normale Version: Formeleingabe per VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

kann mir jemand folgendes Phänomen erklären?

Ich habe eine Tabelle mit einem Preis in Zelle B1, der variable sein soll. B2 ist mit dem Namen "Preis" definiert. In Spalte "D" soll dieser Preis immer dann angezeigt werden, wenn in Spalte "C" etwas eingetragen ist. Das ganze funktioniert wunderbar mit der Formel in Spalte "D":

=WENN(INDIREKT("C"&ZEILE())="";"";Preis)

Da Zellen in Spalte "D" manchmal gelöscht sind, möchte ich die Formel per Doppelklick auf diese Zelle wieder einfügen. Das mache ich mit dem Makro:


Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   
    ' Doppelklick in Spalte "D": Formel einfügen:
    If Target.Column = 4 Then
        Cancel = False
        Target.FormulaLocal = "=WENN(INDIREKT(""C""&ZEILE())="""";"""";Preis)"
    End If
   
End Sub


Nun passiert aber beim Doppelklick in eine Zelle in "D" Folgendes:
- die Zelle erscheint im Editier-Modus (als hätte man F2 gedrückt),
- die Formel wird angezeigt als "WENN(@INDIREKT(""C""&ZEILE())="""";"""";Preis)" [mit einem "@" vor "INDIREKT"]
- nach RETURN erscheint eine Mitteilung:
Diese Formel wird von einigen älteren Excel-Versionen nicht unterstützt.
Möchten Sie stattdessendiese Variante verwenden?
=@WENN(INDIREKT("W"&ZEILE())="";"";Preis) [mit einem "@" vor "WENN"]

A) Wenn ich auf "Ja" klicke, wird die Formel geändert zu "=@WENN(INDIREKT("W"&ZEILE())="";"";Preis)", aber es wird in der Zelle "#WERT!" ausgegeben.
→ Wenn ich danach die Zelle mit F2 editiere und sofort Return drücke, verschwindet "#WERT!" und die Formel "arbeitet" wie gewünscht

B) Wenn ich statt "Ja" zu klicken die Meldung mit Esc beende, dann wird die Formel geändert zu "=WENN(@INDIREKT("W"&ZEILE())="";"";Preis)". Sie arbeitet auch richtig (je nach Eingaben in Spalte "C"). Allerdings: Wenn ich die Formel mit F2 editiere und Return drücke, erscheint wieder die o.g. Meldung.

C) Wenn ich das Häkchen bei "Diese Meldung nicht mehr anzeigen" setze, kommt zwar nicht mehr die Meldung, aber die Formel wird abgeändert in "WENN(@INDIREKT(""C""&ZEILE())="""";"""";Preis)". Nach einem Doppelklick befinde ich mich aber immer noch im Editiermodus.

Fragen:
Wo finde ich Infos zu der Verwendung von "@" in Formeln?
Wie bekomme ich meine Formel per Doppelklick in die Zelle, ohne manuell Hand anlegen zu müssen, also ohne, dass ich mich nach dem Doppelklick im Editiermodus befinde.

Danke schon mal für's Lesen.
(01.07.2020, 10:54)LuckyJoe schrieb: [ -> ]Fragen:
Wo finde ich Infos zu der Verwendung von "@" in Formeln?
Auf der Support-Seite des Herstellers.
@shift-del: Danke, wieder etwas schlauer. 

Fehlt noch, wie die Formel so per Doppelklick eingefügt werden kann, dass man nicht im Editiermodus landet.
Hallo Jörg,

Cancel = True ? Wink

Gruß Uwe
.... aaaaaahhhhrrrrrrgggggg!!!!  :33: 

Oh man, jau - Danke!