View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.misc
Ken Johnson Ken Johnson is offline
external usenet poster
 
Posts: 1,073
Default Runtime Error 1004

On Dec 24, 11:46*am, JB Bates
wrote:
I have a workbook that contains 100 worksheets. *On each work sheet I have
the following code (see below) that runs and when a particular person is
selected from a drop down list a jpg of their signature displays at the top
of each sheet. *

This was working fine but I am now getting the following error after I
select a person from the drop down and then when ever i try to input data
into any other cell. *The error message is:

Runtime Error '1004'" Unable to set the top property of the picture class

It then allows me to END or debug. *if i select debug it opens the VBA
window to the code and highlights this line

oPic.Top = .Top

But i don't know what to to do with that line of code to debug

PLEASE HELP

thanks in advance - JB

* * Private Sub Worksheet_Calculate()
* * * * Dim oPic As Picture
* * * * Me.Pictures.Visible = False
* * * * With Range("ad1")
* * * * * * 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


Strange!
I replied and it appeared. An hour later my reply has disappeared.
I'll try again.
I've seen these problem a few time in the past and the solution was to
avoid dimensioning with the Picture object and using the Shape object
instead.
It does introduce the need for a loop to avoid hiding all shapes
though.
Try...
Private Sub Worksheet_Calculate()
Dim Pic As Shape
For Each Pic In Me.Shapes
If Pic.Type = msoPicture Then
Pic.Visible = False
End If
Next Pic
With Range("AD1")
For Each Pic In Me.Shapes
If Pic.Name = .Text Then
Pic.Visible = True
Pic.Top = .Top
Pic.Left = .Left
Exit For
End If
Next Pic
End With
End Sub

Ken Johnson