If data is entered in a cell, I would like to automatically open a worksheet

When a user enters data in a cell of one specific column of a worksheet, I would like to open another worksheet in the workbook upon exiting that cell. So if the user enters a name in cell C6, worksheet MG Mentions will open.
TheBaronessAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
byundtConnect With a Mentor Commented:
The macro to jump to another worksheet must be stored in the worksheet code pane. Assuming that you want to jump to another worksheet in the same workbook, you do so by Activating that worksheet rather than by opening a workbook.

The following macro watches column C, starting in cell C2. If the user enters any value in those cells, then the macro jumps to the MG Mentions worksheet. If the user clears a value, then no jump is performed.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim targ As Range
Set targ = Range("C2")  'First cell to watch
Set targ = Range(targ, Cells(Rows.Count, targ.Column)) 'All the cells to bottom of worksheet
Set targ = Intersect(targ, Target)
If Not targ Is Nothing Then
    If targ.Cells(1, 1) <> "" Then Worksheets("MG Mentions").Activate
End If
End Sub

Open in new window

Since you are using Excel 2007, you must save the workbook as a macro-enabled .xlsm workbook type. If you save it as .xlsx, then the macro will be removed upon saving it.

You will also need to enable macros when the workbook is opened. If you do not, then the code will not work.

Brad
MG-Mentions-Q26869482.xlsm
0
 
dlmilleCommented:
In Sheet1, you can create an event based on cell changes.  This one, below, looks at any changes in Column C, then opens the file - you'll need to put the fill path in the code.

Open your Debugger and insert this code into the SHEET CODEPAGE you desire (e.g., Sheet1, etc.)
 
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("C1").EntireColumn) Is Nothing Then
        Workbooks.Open ("MG Mentions")
    End If
End Sub

Open in new window

Dave
0
 
SiddharthRoutCommented:
If the user types a path in the cell then it is possible. Else you will have to hard code the path in the code.

Sid
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
bootheelbankCommented:
What Version of Microsoft office are you using?
If you right Click on the the cell and click HyperLink and chose a excel document that has been previously saved on computer.

0
 
dlmilleCommented:
Here, its enhanced - I created a sheet to store the filename which gets opened when change happens in column C.

Note this will open the file even if a cell is being cleared...

See code and attached
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range

    If Not Intersect(Target, Range("C1").EntireColumn) Is Nothing Then
            Workbooks.Open ([fname])
    End If
End Sub

Open in new window


Dave
Open-File-Col-C-change-r2.xls
0
 
TheBaronessAuthor Commented:
That's exactly what I wanted! Everyone else was under the impression I wanted to open another workbook, but this is the solution I was looking for. Many thanks!
0
 
dlmilleCommented:
Well, when you say "open another" - we kindof tend to get that impression.  As oppose to "add a new".

funny!

Cheers,

dave
0
 
TheBaronessAuthor Commented:
Actually, I said "open another worksheet in the workbook" which should have clarified what I intended. Additionally, my example specified opening a worksheet, not a workbook. I'm not sure how much clearer I could have made it :)
0
 
dlmilleCommented:
You gave no example in your original question.  I was just suggesting a reason why "everyone else" potentially got that impression.  

I don't usually read "open a worksheet" to mean add a new worksheet to an existing workbook.  In prior versions of excel, there was only the worksheet and no tabs either.  So, "open a worksheet" was literally opening a worksheet file.

But you did just fine and one of us deciphered what you needed.

I'm glad you got your solution.

Dave
0
 
byundtCommented:
TheBaroness,
I thought your question was pretty clear. You mentioned worksheet three times between the question title and body, and even named it  :)

That said, the verb "open" is generally applied to workbooks that had previously been closed and now need to be opened. That's why Sid, Dave and bootheelbank made the suggestions they did. The correct verb for what you wanted to do is "activate," but this distinction is primarily enforced by VBA code syntax. I wouldn't expect most people to know that fine point.

Thanks for the kind words and grade!

Brad
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.

All Courses

From novice to tech pro — start learning today.