Solved

Small amendment to shape manipulation in Excel

Posted on 2016-08-01
12
31 Views
Last Modified: 2016-08-01
The attached workbook contains a worksheet called Map that contains values in cells F1 to AN1, and F3 to AN3 and these cells are linked to cells in a worksheet called Adjustable Weighting Table.

A change in the value of the cell in Map, changes the all values in each column in the Adjustable Weighting Table.
In the Adjustable Weighting Table, the values in D5 to D179  are linked to the values in A5 to A179 - i.e. D5 is linked to A5.
And the value in D5 is linked to the size of the circle in Map on the map that has the same ID as the number in cell A5..

When a value in Map F1 to AB1 is changed, the size of the circles on the map also change.
This is also meant to occur for a change in value in cells AC1 to AN1, and F3 to AN3, but something is not working.

I would like a change in any value in AC1 to AN1, and F3 to AN3 to change the size of the circles ion the map.
E-Example-workbook.xlsm
0
Comment
Question by:gregfthompson
  • 6
  • 4
  • 2
12 Comments
 

Author Comment

by:gregfthompson
Comment Utility
I found one error in the script. change 7 to 5 for start line. But I still cannot work out how to get all cells on Map worksheet to link.
0
 
LVL 20

Assisted Solution

by:Ejgil Hedegaard
Ejgil Hedegaard earned 250 total points
Comment Utility
Change the macro in the worksheet module for sheet Map to

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F1:AN1", "F3:AN3")) Is Nothing And Target.Count = 1 Then
        Application.EnableEvents = False
            UpdateMap_click
        Application.EnableEvents = True
    End If
End Sub

Open in new window


Then a change in one cell in F1:AN1 or F3:AN3 will trigger the update macro to run.
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
Ejgil got here first but change his line 2 to
If Not Intersect(Target, Range("F1:AI1", "F3:AI3")) Is Nothing And Target.Count = 1 Then
0
 
LVL 20

Expert Comment

by:Ejgil Hedegaard
Comment Utility
The requirement was to column AN.
Guess it is going to be expanded.
0
 

Author Comment

by:gregfthompson
Comment Utility
Thanks to both.
Can you provide the full script. I can't work out where to include the change.
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
In the code for the Map sheet you'll find this.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F1:AB1")) Is Nothing And Target.Count = 1 Then
        Application.EnableEvents = False
            UpdateMap_click
        Application.EnableEvents = True
    End If
End Sub

Open in new window


Replace it with Ejgil's code with or without my modification.
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 

Author Comment

by:gregfthompson
Comment Utility
Thanks Martin, but in the module, this is the entire code:

Sub UpdateMap_click()
Dim myShp As String
Dim i As Long
Dim lngLastDataRow As Long
Dim lngDataRows As Long
Const FIRST_DATE_ROW = 5
Const DEFAULT_SIZE = 0.04
Dim wsAdjust As Worksheet
Dim wsMap As Worksheet

Application.ScreenUpdating = False
On Error GoTo UpdateMap_click_Error
Set wsAdjust = Worksheets("Adjustable Weighting Table")
Set wsMap = Worksheets("Map")
lngLastDataRow = wsAdjust.Range("A1048576").End(xlUp).Row
lngDataRows = lngLastDataRow - FIRST_DATE_ROW + 1

For i = FIRST_DATE_ROW To lngLastDataRow
    myShp = wsAdjust.Cells(i, "A").Value
    wsMap.Shapes(myShp).Height = DEFAULT_SIZE * wsAdjust.Cells(i, "D").Value
    wsMap.Shapes(myShp).Width = Sheets("Map").Shapes(myShp).Height
Next i
' From here down is the rest of the error handling code
On Error GoTo 0
Exit Sub

UpdateMap_click_Error:
    Application.EnableEvents = True
    If Err.Number = -2147024809 Then
        MsgBox "A shape with the name " & myShp & " is missing. Processing stopped.", _
        vbOKOnly + vbExclamation, "Missing shape"
        Debug.Print "Missing " & myShp
    Else
        MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure " _
        & "UpdateMap_click of Module UpdateMapMacro"
    End If
End Sub
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
See the above but here's an updated workbook.
28960761.xlsm
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
Thanks Martin, but in the module, this is the entire code:
No. That's the Module1 code. The other code is in the Map sheet code.
0
 
LVL 45

Accepted Solution

by:
Martin Liss earned 250 total points
Comment Utility
.............
Here's a picture
0
 

Author Closing Comment

by:gregfthompson
Comment Utility
Thank you both.
Brilliant job.
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
You're welcome and I'm glad I was able to help.

In my profile you'll find links to some articles I've written that may interest you.

Marty - Microsoft MVP 2009 to 2016
              Experts Exchange MVE 2015
              Experts Exchange Top Expert Visual Basic Classic 2012 to 2015
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Introduction While answering a recent question (http:/Q_27311462.html), I created an alternative function to the Excel Concatenate() function that you might find useful.  I tested several solutions and share the results in this article as well as t…
Workbook link problems after copying tabs to a new workbook? David Miller (dlmille) Intro Have you either copied sheets to a new workbook, and after having saved and opened that workbook, you find that there are links back to the original sou…
Viewers will learn the basics of slicers and timelines for both PivotTables and standard Excel tables in Excel 2013.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now