View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
mooresk257 mooresk257 is offline
external usenet poster
 
Posts: 50
Default Change Imagebox Property?

When I put this in my code posted earlier:

If Worksheets("Sheet1").OLEObjects("Image1").Object.P icture Is Nothing Then
End If

The next statement: DelImg = MsgBox("Remove Current Photo?", vbYesNo) still
executes, as it probably should. So adding this "If" statement doesn't skip
over the following prompt to remove an image that isn't there.

I tried a GoTo to try and skip over the second msgbox statment if the
"Object.Picture Is Nothing" , but I get an error.

I think I must be missing something obvious here.


"Rick Rothstein" wrote:

"Object.Picture Is Nothing" wasn't what I said to test; however, this...

Worksheets("Sheet1").OLEObjects("Image1").Object.P icture Is Nothing

returned True (if there is no picture in the ImageBox) and False (if there
is) for me when I tested it.

--
Rick (MVP - Excel)


"mooresk257" wrote in message
...
I didn't get any errors, but it didn't change anything either. The property
for the photo is either (None) or (Bitmap), regardless whether hte image
inserted in jpg or bmp.

So "Object.Picture Is Nothing" does not seem to be returning a true or
false
value.

I'd like it to skip the second msgbox asking to remove a photo when there
isn't one there - and I'm stumped how to do this.

+

"Rick Rothstein" wrote:

Try this If..Then statement...

If Worksheets("Sheet1").OLEObjects("Image1").Object.P icture Is Nothing
Then

--
Rick (MVP - Excel)


"mooresk257" wrote in message
...
OK, thanks - that works. Almost got this thing wrapped up - one more
question
(I hope) on this.

My code for the image box looks like this:

Private Sub Image1_Click()

Dim NewImg As Long
Dim DelImg As Long

NewImg = MsgBox("Insert New Photo?", vbYesNoCancel)
If NewImg = vbYes Then
FileToOpen = Application.GetOpenFilename( _
"All Files (*.jpg),*.jpg, All Files (*.bmp),*.bmp")
If FileToOpen < False Then
Worksheets("Sheet1").OLEObjects("Image1").Object.P icture _
= LoadPicture(FileToOpen)
End If
ElseIf NewImg = vbNo Then
' If Worksheets("Sheet1").OLEObjects("Image1").Object.P icture =
("")
Then
' End If
DelImg = MsgBox("Remove Current Photo?", vbYesNo)
If DelImg = vbYes Then
Worksheets("Sheet1").OLEObjects("Image1").Object.P icture
=
LoadPicture("")
ElseIf DelImg = vbNo Then
End If
ElseIf NewImg = vbCancel Then
End If

End Sub

Note the two line I have commented out - I want to skip having the
second
message box pop up if the image box is empty, but this line returns an
object
error. So, obviously I've got something wrong somewhere. I only get an
object
error if there is no image in the photo box.

Suggestions?

Also, anyone have a suggestion for a book on VBA? Something written so
the
casual user can understand?

"Rick Rothstein" wrote:

Try it this way...

Worksheets("Sheet1").OLEObjects("Image1").Object.P icture =
LoadPicture("")

--
Rick (MVP - Excel)


"mooresk257" wrote in message
...
I posted the code earlier on a different topic:

Private Sub Image1_Click()

FileToOpen = Application.GetOpenFilename( _
"All Files (*.jpg),*.jpg,(*.bmp),*.bmp")
If FileToOpen < False Then
Worksheets("Sheet1").OLEObjects("Image1").Object.P icture _
= LoadPicture(FileToOpen)
End If

End Sub

If I want to remove the image, I have to change the image box
Picture
property to "none". Can anyone help with the code for setting
properties?

I think I'd need something like

Worksheets("Sheet1").OLEObjects("Image1").Object.P icture _
= None

Is it possible to assign this to a right-click event? Or, maybe I
should
add
some code for a message box prompting to add or remove an image. I'm
not
sure
what the simplest solution is.

I'm so rusty on VB code - it's been years since I messed with it.

Thanks folks!