Which line causes the error?
If it is:
Me.Pictures.Visible = False
Then replace that line with this block of lines:
for each oPic in Me.Pictures
opic.visible = false
next opic
You could actually combine this block with the other for/each block:
Option Explicit
Private Sub Worksheet_Calculate()
Dim oPic As Picture
With Range("b5")
For Each oPic In Me.Pictures
If oPic.Name = .Text Then
oPic.Visible = True
oPic.Top = .Top
oPic.Left = .Left
Else
oPic.Visible = False
End If
Next oPic
End With
End Sub
Notice the "exit for" line is gone--so that the code can hide all the pictures.
Dav1d wrote:
I've built a picture display in excel using the (widely recommended) link:
http://mcgimpsey.com/excel/lookuppics.html
It works superbly! But once I reach 60 pictures it generates a 1004 runtime
error: "Unable to set the Visible property of the Pictures class".
The code - supplied on the mcgimpsey site - doesn't suggest any limitations
so I'm wondering if its an excel limit. Can anyone advise? I've copied the
code below.
Private Sub Worksheet_Calculate()
Dim oPic As Picture
Me.Pictures.Visible = False
With Range("b5")
For Each oPic In Me.Pictures
If oPic.Name = .Text Then
oPic.Visible = True
oPic.Top = .Top
oPic.Left = .Left
Exit For
End If
Next oPic
End With
End Sub
Once again, the mcgimpsey solution is first class, the problem is getting to
the target 110 pictures.
Many thanks
David
--
Dave Peterson