I knew there was VBA somewhere in this thread.
OK, I think I understand what you want, but I could be wrong.
What you are doing is pressing a button that changes the value of C9 on Sheet1 to TRUE. Now if this value is TRUE, you want to look in cell G12 on sheet2 to see what cell reference is there. (If I'm reading Aladin's formula correctly, that would return something like "Data!$A$1")
So using this example, if C9 is TRUE, I would put "Booked" into cell A1 on the worksheet named "Data". To coin an expression, phew!
OK, here's what I've got:
<pre>
Public Sub main()
Dim oRange As Range
Set oRange = Sheets("Sheet2").Range("G12")
'You don't need this If...Then statement if you call this sub only when you set C9 to TRUE
If Sheets("Sheet1").Range("C9").Value = True Then
Sheets(LeftString(oRange.Value, "!")).Range(RightString(oRange.Value, "!")).Value = "Booked"
Else
MsgBox "Is False"
End If
End Sub
Public Function LeftString(ByVal sText As String, ByVal sSeparator As String) As String
LeftString = Left(sText, InStr(1, sText, sSeparator) - 1)
End Function
Public Function RightString(ByVal sText As String, ByVal sSeparator As String) As String
RightString = Right(sText, Len(sText) - InStr(1, sText, sSeparator))
End Function</pre>
I've slipped in a couple of functions that I used to use a lot, for free. They're required to get the address from the value in cell G12.
To use this:
You will copy and paste this into the same module that your button click code is on.
In your button_click code, you would invoke the subroutine "main" after you have set the value of C9 to TRUE. (I would suggest changing the name of the subroutine "main" to something that makes more sense to you, like "UpdateCell" or something)
Oh yeah, to call "main" simply put the word "main" in your code or you can use "Call main" to make it more explicit.
HTH
(If this isn't what you're looking for repost with what you really need)