Formeleingabe per VBA
#1
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.


Angehängte Dateien
.xlsm   FormeleingabeVBA.xlsm (Größe: 20,03 KB / Downloads: 1)
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#2
(01.07.2020, 11:54)LuckyJoe schrieb: Fragen:
Wo finde ich Infos zu der Verwendung von "@" in Formeln?
Auf der Support-Seite des Herstellers.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • LuckyJoe
Top
#3
@shift-del: Danke, wieder etwas schlauer. 

Fehlt noch, wie die Formel so per Doppelklick eingefügt werden kann, dass man nicht im Editiermodus landet.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#4
Hallo Jörg,

Cancel = True ? Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • LuckyJoe
Top
#5
.... aaaaaahhhhrrrrrrgggggg!!!!  :33: 

Oh man, jau - Danke!
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste