# Repeating the contents of one cell in another, in “real time”

How could I create two Input cells, such that when the first is evaluated, the contents of the first are copied to the second? So for example, there would be two empty cells - let's call them A and B - and when the user enters f[x_]:=x^2+4 in A, nothing happens. When that same user evaluates cell A, then the contents of cell B are updated to be f[x_]:=x^2+4. There is a similar question here, but I don't need to be that low-level about things, and I also don't want automatic refreshing; only when cell A has been evaluated.

-
This may be useful for this: reference.wolfram.com/mathematica/ref/… –  Szabolcs Feb 8 '13 at 2:47
@Szabolcs: Ok, thanks, this could be a very good place to start. DO you know how I would use such a function to update the contents of another cell? It can't be just the usual Dynamic, because I need cell B to be an input cell. –  Steve D Feb 8 '13 at 3:18
Unfortunately I don't have time to figure it out, but this is what I'd try (not sure it's the best or even that it would work): first identify cell B somehow, e.g. with a cell tag. Then make the CellEvaluationFunction locate cell B (NotebookLocate), select it, and replace its contents e.g. using NotebookWrite (NotebookApply? not sure). Hope this helps. –  Szabolcs Feb 8 '13 at 3:26
@Szabolcs: Your suggestion definitely helped, and it works when I enter it directly into the notebook. However, if I use it as an argument to CellEvaluationFunction, it does not work. –  Steve D Feb 8 '13 at 14:52

Why not use CellEpilog? :

CellPrint /@
{ExpressionCell[ , "Input",
CellTags -> "CellA",
Background -> LightGray,
CellEpilog :> Module[{contA},

contA = NotebookRead[Cells[CellTags -> "CellA"]] /.
{Cell[b_, "Input", ___], ___} :> b;
NotebookFind[EvaluationNotebook[], "CellB", Next, CellTags];
SelectionMove[EvaluationNotebook[], All, CellContents];
NotebookWrite[EvaluationNotebook[], contA]
]],
ExpressionCell[, "Input", CellTags -> "CellB",
Background -> LightOrange]
};

-
Thanks, this worked perfectly! –  Steve D Feb 12 '13 at 7:16