Frage von PrimMay, 56

Excel- wie verstecke ich die Formel, und mache sie unüberschreibbar und fix?

Hallo Leute,

ich habe eine Excel Tabelle, wo diese Formel =WENNFEHLER(INDEX(WKZ[#Daten];VERGLEICH([@[OU Transformed]];WKZ[SubOU];0);7);"") Beispielsweise im Hintergrund an einer bestimmten Zelle gespeichert hinterlegt werden soll. Diese Formel wird erst dann sichtbar, wenn etwas drinnen steht. Wie bekomme ich das hin?

Antwort
von Funfroc, 32

Hallo,

mit anderen Worten, du willst, wenn in Zelle X etwas eingetragen wird, dass in eben dieser Zelle die gewünschte Funktion ausführen?

Dann wirst du im VBA nicht herumkommen. Mit einem Worksheet_Change-Ereignis sollte das abbildbar sein. Bin leider in VBA selbst nicht firm genug, um dazu mal eben was aus dem Ärmel zu schütteln.

Bei VBA ist es aber schon so, dass man die Sachen, die man anwendet zumindest selbst verstehen sollte. Wie sieht es mit deinen VBA-Kenntnissen aus?

Ansonsten wäre die Frage, was dagegen spricht, die Formel in einer separeten Zelle auszuführen?

LG, Chris

Kommentar von PrimMay ,

ich bin ein VBA Frischling und deshalb war ich mir auch unsicher ob es nur mit vba funktioniert. Müsste dann jetzt die entsprechende Funktion dazu finden ^^

LG Tolga

Expertenantwort
von Ninombre, Community-Experte für Excel, 13

In einer Zelle kann nur ein Wert oder eine Formel stehen, nicht beides. So klingt aber Deine Anforderung: Die Zelle soll mit einem Wert gefüllt werden und dann mit diesem Wert die Formel berechnet werden. Kann so in zweierlei Hinsicht nicht gehen: Zum einen löscht Du die Formel durch Reinkopieren des Wertes (dann rechnet sie auch nix) und eine Zelle kann (da es nur einen Wert gibt) nicht gleichzeitig einen Anfangswert und einen Ergebniswert haben. Das ist die Fehlermeldung Zirkelbezug.

Mit VBA lässt sich die Anforderung umsetzen, aber auch dann ist der ursprüngliche Wert in der Zelle weg. Ist das so gewollt?

Kommentar von PrimMay ,

Das ist nicht gewollt. Ich habe bereits so eine Excel Datei und da funktioniert das so. Genau das finde ich komisch, ich habe natürlich auch nichts in dem VBA Code gefunden :-S Deshalb wollte ich fragen, wie das funktioneiren könnte

Kommentar von Ninombre ,

Vielleicht reden wir aneinander vorbei oder verstehen die Frage unterschiedlich.

Diese Formel mit index/vergleich - die enthält schon eine Wennfehler Abfrage: Wird nichts gefunden, soll leer angezeigt werden. Funktioniert das im Moment nicht richtig? Was steht dann drin?

Antwort
von kuechentiger, 39
Kommentar von PrimMay ,

Ich glaube die Frage wurde falsch verstanden sorry

es geht um eine Zelle, worin ich zum Beispiel eine Formel schreibe und hier soll in Zukunft zum Beispiel etwas reinkopiert werden. Nun soll durch das rein kopieren meine hinterlegte Formel aktiviert werden und nicht gelöscht

Kommentar von kuechentiger ,

??? Die Formel wird aktiviert, wenn man ihr etwas zu tun gibt. Wenn sie gelöscht würde, dann könnte man ja nicht mit Excel arbeiten.

Expertenantwort
von Iamiam, Community-Experte für Excel, 9

Hier erstmal eine Primitiv-Fassung:

Sub FormelSetzenInAC()
ActiveCell.Formula = "=A1"
End Sub

Das einem Button (ich nehme dafür immer ein Textfeld, das ist an vielfältigsten variabel) zuweisen

Anstatt =A1 kannst Du natürlich auch Deine Formel hinterlegen.

Platzierst Du das Makro im Modul des Worksheets als

Sub Worksheet_change(Byval, Target as range), so musst Du das an eine Bedingung knüpfen, sonst würde jede Eingabe mit dieser Formel überschrieben.

Die Bedingung könnte in einem einfachen Fall lauten:

if Target.address = "$A$2" then ActiveCell.Formula = "=A1" 'hier ist ausnahmsweise mal kein endif nötig (einzeilige Variante)

Das beschränkt die Anwendung auf eine Zelle, A2.

Wenn Du das hingekriegt hast, dann können wir über Weiteres reden.

Melde Dich dann aber IN DIESER FRAGE zurück, sonst seh ich das nicht!

Kommentar von Iamiam ,

für Formeln, die auf deutsch anders lauten als auf englisch, brauchst Du nicht formula, sondern formulalocal.

also zB Activecell.formulalocal = "=runden(A1;0)" oder eben Deine Formel.

Spezielle Probleme würden Argumente in Gänsefüßchen ergeben, aber auch das ließe sich in den Griff bekommen.

Auch die Hinterlegung der Formel kann anders erfolgen.

Antwort
von augsburgchris, 28

geht nur über VBA

Kommentar von PrimMay ,

danke, aber wie

Kommentar von augsburgchris ,

Ich würde das ganze an einen Button hängen, wenn du das Change Ereignis nimmst wird dir bei jedem durchrechnen das Ergebnis neu auf Basis des vorherigen Ergebnisses berechnet. 

Du willst also in das Feld  eine 1 Eintragen und es soll direkt Katze drin stehen? 

Da du die Formel aus einer Tabelle erstellt hast ist es schwierig ohne die Tabelle zu kennen zu wissen in welcher Spalte was steht. 

Keine passende Antwort gefunden?

Fragen Sie die Community