Zellen überschreiben

Bild

Betrifft: Zellen überschreiben
von: Serkan
Geschrieben am: 07.07.2015 09:25:33

Guten Morgen liebes Forum,
ich brauche da ein wenig Hilfe. Ich habe eine Zelle mit einer Formel hinterlegt.
Biespiel: In Zelle F43 steht die Formel (C43-I43). Allerdings möchte ich, die Möglichkeit geben in die Zelle 43 einen Wert eintragen zu lassen, welches aber nicht die hinterlegte Formel löscht,sobald ein Wert manuell eingetragen wird. Und wenn dieser Wert gelöscht wird, dass wieder die hinterlegte Formel wiederhergestellt wird.
Das wäre doch sicherlich mit einem VBA Code möglich oder?!
Vielen Dank im Voraus und viele Grüße

Bild

Betrifft: AW: Zellen überschreiben
von: Bernd
Geschrieben am: 07.07.2015 09:38:22
Hi!
hilft eventuell das weiter:
https://www.herber.de/forum/archiv/316to320/316289_Formel_ueberschreiben_ohne_sie_zu_loeschen.html
mfg Bernd

Bild

Betrifft: AW: Zellen überschreiben
von: Daniel
Geschrieben am: 07.07.2015 09:39:32
Hi
wenn alle Zellen die gleiche Formel bekommen dann mit folgendem Code im Change-Event des Tabellenblatts.
der Code schreibt bei jeder Änderung im angegebenen Zellbereich die Formel in die leeren Zellen (also, die, deren Inhalt grad eben gelöscht wurde).

Private Sub Worksheet_Change(ByVal Target As Range)
With Range("C43:I43")
    If WorksheetFunction.CountBlank(.cells) > 0 Then
        Application.EnableEvents = False
        .specialcells(xlcelltypeblanks).FormulaR1C1 = "hier deine formel in R1C1-Schreibweise"
        Application.EnableEvents = True
    End If
End With
End Sub
gruß Daniel

Bild

Betrifft: AW: Zellen überschreiben
von: Serkan
Geschrieben am: 07.07.2015 09:47:20
Hallo Daniel,
vielen Dank für die schnelle antwort, die Formel (C43-I43) ist auschließlich in der Zelle F43, sonst nirgendwo anders.
Kannst du mir auf die Sprünge helfen, wie die R1C1 Schreibweise dann aussehen würde?
Danke und Gruß

Bild

Betrifft: AW: Zellen überschreiben
von: Daniel
Geschrieben am: 07.07.2015 10:36:03
Hi
wenn du das eingeben der Formel mit dem Recorder aufzeichnest, findest die Aufzeichung im R1C1-Format statt.
du kannst auch, wenn die Formel schon in der Zelle F43 steht, dir die Formel im Direktfenster (falls nicht vorhanden, über Menüpunkt "Ansicht" einblenden) mit dem Befehl: ?Range("F43").FormulaR1C1 anzeigen lassen und in deinen Code kopieren.
Wenn die Formel selbst Anführungszeichen enthält, musst du diese im Makro verdoppeln (aus " wird "")
Daran kann der VBA-Interpreter beim dekodieren deines Quellcodes erkennen, ob die Anführungszeichen zur Formel gehören (Doppelte Anfz.) oder den Textstring begrenzen (Einfache Anfz.)
wenn nur die Zelle F43 betroffen ist, dann einfach nur diese Zelle bei With angeben:
With Range("F43")
den Rest dann so lassen wie er ist und natürlich die richtige Formel wie gezeigt in den Code eingeben.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen überschreiben"