Fine. Are you familiar with Excel VBA?
First you need to save your workbook as a
macro-enabled or
binary format (.xlsm or .xlsb). I prefer xlsb myself but that's personal preference.
Second, on each tab where, if you make a change, you want a value elsewhere to change, right click the tab and select 'View Code'.
If you're familiar with web page design this will be simple for you.
This will open up the VBA editor.
Lets start with the example you quoted. Select Sheet2, right click the tab and click 'View Code'
Copy and paste this in:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.AddressLocal = "$D$5" And Worksheets("Sheet4").Range("$F$5").Value <> Target.Value Then Worksheets("Sheet4").Range("$F$5").Value = Target.Value
End Sub
Now when you change the value in Sheet2!D5 it should appear in Sheet4!F5
Now go onto Sheet4, View Code, and copy & Paste this in:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.AddressLocal = "$F$5" And Worksheets("Sheet2").Range("$D$5").Value <> Target.Value Then Worksheets("Sheet2").Range("$D$5").Value = Target.Value
End Sub
This is the other way round, so will send the value here back to the other sheet and stop the infinite loop (see note below).
If you have more cells on Sheet2 that you want replicating, copy the if Target.AddressLocal line and change the D5 to where you want the value copied from and sheet4 F5 to wherever you need the value to go.
repeat this on each tab for sending both ways.
The way this works, each sheet can have sub macros that work when something happens on that worksheet. In this case, the code runs whenever you change a value on the worksheet.
The Target parameter is the cell you changed. This has an AddressLocal property that tells you the cell reference. So you can do an If statement to test if the cell is one you want to replicate.
The target also has a value property which is - not surprisingly - the value in the cell.
The place you want to send the value to is identified by the worksheet object and the range object within that worksheet, and you can set the value property of that range.
You need the condition
Code:
And Worksheets("Sheet4").Range("$F$5").Value <> Target.Value
because if you don't, you change Sheet2!D5 which changes Sheet4!F5. This causes a worksheet change event on Sheet4, which calls the code that sends the change back, which calls the code that sends it back to Sheet4 again and so on, an infinite loop. You can get out of it by hitting escape if something goes wrong, but that condition means the loop stops once the value is the same in both cells.
So all you need to do is copy and paste this, add all the target cells you want to replicate, and specify where you want the value to go.
Then if you have other sheets, copy the code and repeat as necessary there, just amend the target references on that sheet you want to replicate and the destination references.
Simples
Have a go and post back if you have a problem. You shouldn't though, I just checked it and it worked for me.