• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 40
  • Last Modified:

Link sheets

Hello I have a little problem.
For example in sheet1 on C13 i have formula like 5.81*0.97 and in the sheet2 in C13 i have formula 888*0.97..
What i need to do to like link them, like if i change that (0.97 to 0.85) in sheet1 in C13 it will automatic change in sheet2 in C13 from 0.97 to 0.85 as well.
???
0
Janis Ozols
Asked:
Janis Ozols
  • 6
  • 6
1 Solution
 
Ryan ChongCommented:
>>What i need to do to like link them, like if i change that (0.97 to 0.85) in sheet1 in C13 it will automatic change in sheet2 in C13 from 0.97 to 0.85 as well.
both need to refer to a static cell in order to do that, which mean you need to put the value of 0.85 to another cell, let both C13 in Sheet1 and Sheet2 refer to it.
28968462.xlsx
1
 
Saqib Husain, SyedEngineerCommented:
You can do this using a macro. Do you want to go in that direction?
1
 
Janis OzolsAuthor Commented:
I could go that direction it would be really good for me.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
Saqib Husain, SyedEngineerCommented:
Try this macro in the Workbook Module
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count = 1 Then
        If ActiveCell.Worksheet.Name = Target.Worksheet.Name Then
            If Sh.Name = "Sheet1" Or Sh.Name = "Sheet2" Then
                If Target.Address = Range("C13").Address Then
                    If Sh.Name = "Sheet1" Then
                        Sheets("Sheet2").Range("C13").Formula = Left(Sheets("Sheet2").Range("C13").Formula, InStr(Sheets("Sheet2").Range("C13").Formula, "*")) & Right(Target.Formula, Len(Target.Formula) - InStr(Target.Formula, "*"))
                    ElseIf Sh.Name = "Sheet2" Then
                        Sheets("Sheet1").Range("C13").Formula = Left(Sheets("Sheet1").Range("C13").Formula, InStr(Sheets("Sheet1").Range("C13").Formula, "*")) & Right(Target.Formula, Len(Target.Formula) - InStr(Target.Formula, "*"))
                    End If
                End If
            End If
        End If
    End If
End Sub

Open in new window

Change-constant-macro.xlsm
1
 
Janis OzolsAuthor Commented:
Woow, it really helped, what can I do if range is from C13 to I13, how I need to change the Macros?
0
 
Saqib Husain, SyedEngineerCommented:
Change the macro to
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count = 1 Then
        If ActiveCell.Worksheet.Name = Target.Worksheet.Name Then
            If Sh.Name = "Sheet1" Or Sh.Name = "Sheet2" Then
                If Not Intersect(Target, Range("C13:I13")) Is Nothing Then
                    If Sh.Name = "Sheet1" Then
                        Sheets("Sheet2").Range(Target.Address).Formula = Left(Sheets("Sheet2").Range(Target.Address).Formula, InStr(Sheets("Sheet2").Range(Target.Address).Formula, "*")) & Right(Target.Formula, Len(Target.Formula) - InStr(Target.Formula, "*"))
                    ElseIf Sh.Name = "Sheet2" Then
                        Sheets("Sheet1").Range(Target.Address).Formula = Left(Sheets("Sheet1").Range(Target.Address).Formula, InStr(Sheets("Sheet1").Range(Target.Address).Formula, "*")) & Right(Target.Formula, Len(Target.Formula) - InStr(Target.Formula, "*"))
                    End If
                End If
            End If
        End If
    End If
End Sub

Open in new window

0
 
Janis OzolsAuthor Commented:
This didn't work for me still changes just C13 cells.
0
 
Janis OzolsAuthor Commented:
Ohh wait it worked. thanks very mush for help :)
0
 
Janis OzolsAuthor Commented:
What would the Macro be if I could change the (0.97) in C13 and it would automatic change from C13 to I13 in sheet1 and sheet2?
0
 
Saqib Husain, SyedEngineerCommented:
Send a sample file.
1
 
Janis OzolsAuthor Commented:
Here is the sample file.
aaa.xlsx
0
 
Saqib Husain, SyedEngineerCommented:
Public evnt As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cel As Range, sufx As String
If evnt = False Then
    evnt = True
    If Target.Count = 1 Then
        sufx = Right(Target.Formula, Len(Target.Formula) - InStr(Target.Formula, "*"))
        For Each cel In Sheet1.Range("C13:I13")
            cel.Formula = Left(cel.Formula, InStr(cel.Formula, "*")) & sufx
        Next cel
        For Each cel In Sheet2.Range("C13:I13")
            cel.Formula = Left(cel.Formula, InStr(cel.Formula, "*")) & sufx
        Next cel
    End If
    evnt = False
End If
End Sub
0
 
Saqib Husain, SyedEngineerCommented:
Assuming the asker's intent.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

  • 6
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now