Formel überschreiben ohne sie zu löschen

Bild

Betrifft: Formel überschreiben ohne sie zu löschen
von: Christian (swiss)
Geschrieben am: 29.09.2003 08:45:06

Moin an das geniale Forum,

Ich habe mal eine Frage: Ist es möglich ein Feld in Excel zu kreiren in dem eine Formel steht (also auch eine wert aus gibt), wo man aber trotzdem, den Wert überschrieben kann, ohne dass man die Formel löshct. Und wenn man dann wieder das überschriebene löscht, sollte wieder der Wert der Formel da stehen. Ist das in Excel ( möglischst ohne VBA ) möglich?
Vielen Dank

Bild


Betrifft: AW: Formel überschreiben ohne sie zu löschen
von: Matthias G
Geschrieben am: 29.09.2003 08:57:34

Hallo Christian,
so einfach geht das nicht.
Du kannst allerdings folgendes machen:
z.B. steht in A1 die Formel, z.B. "=F1-G1". Wenn Du diese mit einem Wert überschreibst, ist sie weg. Arbeite also mit einer Hilfszelle:
Ändere die Formel in A1 in "=WENN(B1="";F1-G1;B1)", dann zeigt die Zelle A1 den ursprünglichen Formelwert an, solange B1 leer ist. Wenn B1 nicht leer ist, hat A1 den gleichen Wert wie B1. Du kannst die Formel also durch Eintrag in B1 quasi "überschreiben".

Grüße,
Matthias


Bild


Betrifft: AW: Formel überschreiben ohne sie zu löschen
von: Christian (swiss)
Geschrieben am: 29.09.2003 09:05:56

Hi Matthias,

ah... auch ne gute Idee. DANKE!!! Dachte mir schon, dass es nicht so ganz ohne geht ;-)!

Aber trotzdem Danke!

Christian


Bild


Betrifft: AW: Formel überschreiben ohne sie zu löschen
von: Matthias G
Geschrieben am: 29.09.2003 09:19:42

Hallo Christian,
Danke für die Rückmeldung.
Ich hab mir überlegt, dass es auch durch direktes Löschen der Zelle ginge, indem nämlich die Formel im Kommentarfeld der Zelle hinterlegt würde.
Das ginge aber nur mit VBA und Worksheet_Change-Ergeignis.
Wäre etwas knifflig, deshalb vorab die Frage, hast du Interesse?

Gruß,
Matthias


Bild


Betrifft: AW: Formel überschreiben ohne sie zu löschen - VBA
von: Matthias G
Geschrieben am: 29.09.2003 10:00:32

Hallo Christian,
also ich hab mich mal drangemacht und folgenden Code geschrieben:

Erstmal ein Modul, welches im Aktuellen Tabellenblatt alle gefundenen Formeln in die Kommentare schreibt (in ein normales Modul). Es muss bei schon vorhandenen Zellen nur einmal ausgeführt werden:
Sub MerkeFormeln()
Dim Benutzt, z As Range
Set Benutzt = Range(Cells(1, 1), Cells.SpecialCells(xlCellTypeLastCell))
For Each z In Benutzt
If z.HasFormula Then
z.NoteText Text:=z.Formula
Else
z.NoteText Text:=""
End If
Next z
End Sub

Dann die Ereignisprozedur, die in das Codemodul des entsprechenden Tabellenblatts gehört:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Range
Application.EnableEvents = False
For Each z In Target
    If z.Value = "" Then
        z.Value = z.NoteText
        'z.Calculate
    End If
    If z.HasFormula Then
        z.NoteText Text:=z.Formula
        z.Font.ColorIndex = 3
    Else
        z.Font.ColorIndex = xlColorIndexAutomatic
    End If
Next z
Application.EnableEvents = True
End Sub

Die Zellfarbe wird bei hinterlegten Zellen so geändert: Überschriebene Formel=schwarz, Original-Formel=rot.
Viel Spaß damit,
Matthias


Bild


Betrifft: AW: Formel überschreiben ohne sie zu löschen - VBA
von: Christian (swiss)
Geschrieben am: 29.09.2003 10:41:52

Wou Matthias,

das ist ja die delux Lösung :-)Hey 1000 Dank. Werde mich gleich mal ans implementieren machen. Klasse Zug von Dir!!!(Mit VBA gehts dann doch eleganter)

Noch mal Danke,

Gruss

Christian


Bild


Betrifft: AW: Danke fürs Feedback! -o.T.
von: Matthias G
Geschrieben am: 29.09.2003 10:48:19

-


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Formel überschreiben ohne sie zu löschen"