| Home | Forums | Reviews | Articles | Register |
![]() |
| Thread Tools | Rate Thread |
|
|
|
| |
|
Rick Rothstein
Guest
Posts: n/a
|
Try it this way...
Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = LoadPicture("") -- Rick (MVP - Excel) "mooresk257" <(E-Mail Removed)> wrote in message news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... >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.Picture _ > = 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.Picture _ > = 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! |
|
||
|
||||
|
mooresk257
Guest
Posts: n/a
|
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.Picture _ = LoadPicture(FileToOpen) End If ElseIf NewImg = vbNo Then ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = ("") Then ' End If DelImg = MsgBox("Remove Current Photo?", vbYesNo) If DelImg = vbYes Then Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = 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.Picture = LoadPicture("") > > -- > Rick (MVP - Excel) > > > "mooresk257" <(E-Mail Removed)> wrote in message > news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... > >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.Picture _ > > = 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.Picture _ > > = 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! > > |
|
||
|
||||
|
Rick Rothstein
Guest
Posts: n/a
|
Try this If..Then statement...
If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture Is Nothing Then -- Rick (MVP - Excel) "mooresk257" <(E-Mail Removed)> wrote in message news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... > 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.Picture _ > = LoadPicture(FileToOpen) > End If > ElseIf NewImg = vbNo Then > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > ("") > Then > ' End If > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > If DelImg = vbYes Then > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > 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.Picture = >> LoadPicture("") >> >> -- >> Rick (MVP - Excel) >> >> >> "mooresk257" <(E-Mail Removed)> wrote in message >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... >> >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.Picture _ >> > = 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.Picture _ >> > = 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! >> >> |
|
||
|
||||
|
mooresk257
Guest
Posts: n/a
|
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.Picture Is Nothing Then > > -- > Rick (MVP - Excel) > > > "mooresk257" <(E-Mail Removed)> wrote in message > news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... > > 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.Picture _ > > = LoadPicture(FileToOpen) > > End If > > ElseIf NewImg = vbNo Then > > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > > ("") > > Then > > ' End If > > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > > If DelImg = vbYes Then > > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > > 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.Picture = > >> LoadPicture("") > >> > >> -- > >> Rick (MVP - Excel) > >> > >> > >> "mooresk257" <(E-Mail Removed)> wrote in message > >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... > >> >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.Picture _ > >> > = 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.Picture _ > >> > = 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! > >> > >> > > |
|
||
|
||||
|
Rick Rothstein
Guest
Posts: n/a
|
"Object.Picture Is Nothing" wasn't what I said to test; however, this...
Worksheets("Sheet1").OLEObjects("Image1").Object.Picture 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" <(E-Mail Removed)> wrote in message news:0AA72627-8695-4236-9BA4-(E-Mail Removed)... >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.Picture Is Nothing >> Then >> >> -- >> Rick (MVP - Excel) >> >> >> "mooresk257" <(E-Mail Removed)> wrote in message >> news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... >> > 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.Picture _ >> > = LoadPicture(FileToOpen) >> > End If >> > ElseIf NewImg = vbNo Then >> > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = >> > ("") >> > Then >> > ' End If >> > DelImg = MsgBox("Remove Current Photo?", vbYesNo) >> > If DelImg = vbYes Then >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture >> > = >> > 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.Picture = >> >> LoadPicture("") >> >> >> >> -- >> >> Rick (MVP - Excel) >> >> >> >> >> >> "mooresk257" <(E-Mail Removed)> wrote in message >> >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... >> >> >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.Picture _ >> >> > = 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.Picture _ >> >> > = 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! >> >> >> >> >> >> |
|
||
|
||||
|
mooresk257
Guest
Posts: n/a
|
When I put this in my code posted earlier:
If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture 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.Picture 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" <(E-Mail Removed)> wrote in message > news:0AA72627-8695-4236-9BA4-(E-Mail Removed)... > >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.Picture Is Nothing > >> Then > >> > >> -- > >> Rick (MVP - Excel) > >> > >> > >> "mooresk257" <(E-Mail Removed)> wrote in message > >> news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... > >> > 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.Picture _ > >> > = LoadPicture(FileToOpen) > >> > End If > >> > ElseIf NewImg = vbNo Then > >> > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > >> > ("") > >> > Then > >> > ' End If > >> > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > >> > If DelImg = vbYes Then > >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture > >> > = > >> > 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.Picture = > >> >> LoadPicture("") > >> >> > >> >> -- > >> >> Rick (MVP - Excel) > >> >> > >> >> > >> >> "mooresk257" <(E-Mail Removed)> wrote in message > >> >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... > >> >> >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.Picture _ > >> >> > = 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.Picture _ > >> >> > = 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! > >> >> > >> >> > >> > >> > > |
|
||
|
||||
|
Rick Rothstein
Guest
Posts: n/a
|
You need to put your code between the If..Then statement and the End If
statement if you want it to be controlled by the logical expression in the If..Then statement. Try 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.Picture _ = LoadPicture(FileToOpen) End If ElseIf NewImg = vbNo Then If Worksheets("Sheet1").OLEObjects("Image1"). _ Object.Picture Is Nothing Then DelImg = MsgBox("Remove Current Photo?", vbYesNo) If DelImg = vbYes Then Worksheets("Sheet1").OLEObjects("Image1"). _ Object.Picture = LoadPicture("") End If End If End If End Sub NOTE: The above code is off-the-top-of-my-head... I didn't try it out (I simply restructured what you already had). -- Rick (MVP - Excel) "mooresk257" <(E-Mail Removed)> wrote in message news:70580411-358A-47D4-9FC6-(E-Mail Removed)... > When I put this in my code posted earlier: > > If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture 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.Picture 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" <(E-Mail Removed)> wrote in message >> news:0AA72627-8695-4236-9BA4-(E-Mail Removed)... >> >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.Picture Is Nothing >> >> Then >> >> >> >> -- >> >> Rick (MVP - Excel) >> >> >> >> >> >> "mooresk257" <(E-Mail Removed)> wrote in message >> >> news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... >> >> > 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.Picture >> >> > _ >> >> > = LoadPicture(FileToOpen) >> >> > End If >> >> > ElseIf NewImg = vbNo Then >> >> > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture >> >> > = >> >> > ("") >> >> > Then >> >> > ' End If >> >> > DelImg = MsgBox("Remove Current Photo?", vbYesNo) >> >> > If DelImg = vbYes Then >> >> > >> >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture >> >> > = >> >> > 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.Picture = >> >> >> LoadPicture("") >> >> >> >> >> >> -- >> >> >> Rick (MVP - Excel) >> >> >> >> >> >> >> >> >> "mooresk257" <(E-Mail Removed)> wrote in >> >> >> message >> >> >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... >> >> >> >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.Picture _ >> >> >> > = 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.Picture _ >> >> >> > = 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! >> >> >> >> >> >> >> >> >> >> >> >> |
|
||
|
||||
|
mooresk257
Guest
Posts: n/a
|
OK, I got it to work - this is the code I ended up with:
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.Picture _ = LoadPicture(FileToOpen) End If ElseIf NewImg = vbNo Then If Worksheets("Sheet1").OLEObjects("Image1"). _ Object.Picture Is Nothing Then GoTo Skip End If DelImg = MsgBox("Remove Current Photo?", vbYesNo) If DelImg = vbYes Then Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = LoadPicture("") ElseIf DelImg = vbNo Then End If ElseIf NewImg = vbCancel Then End If Skip: End Sub Thanks for your help Rick! "Rick Rothstein" wrote: > You need to put your code between the If..Then statement and the End If > statement if you want it to be controlled by the logical expression in the > If..Then statement. Try 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.Picture _ > = LoadPicture(FileToOpen) > End If > ElseIf NewImg = vbNo Then > If Worksheets("Sheet1").OLEObjects("Image1"). _ > Object.Picture Is Nothing Then > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > If DelImg = vbYes Then > Worksheets("Sheet1").OLEObjects("Image1"). _ > Object.Picture = LoadPicture("") > End If > End If > End If > End Sub > > NOTE: The above code is off-the-top-of-my-head... I didn't try it out (I > simply restructured what you already had). > > -- > Rick (MVP - Excel) > > > "mooresk257" <(E-Mail Removed)> wrote in message > news:70580411-358A-47D4-9FC6-(E-Mail Removed)... > > When I put this in my code posted earlier: > > > > If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture 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.Picture 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" <(E-Mail Removed)> wrote in message > >> news:0AA72627-8695-4236-9BA4-(E-Mail Removed)... > >> >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.Picture Is Nothing > >> >> Then > >> >> > >> >> -- > >> >> Rick (MVP - Excel) > >> >> > >> >> > >> >> "mooresk257" <(E-Mail Removed)> wrote in message > >> >> news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... > >> >> > 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.Picture > >> >> > _ > >> >> > = LoadPicture(FileToOpen) > >> >> > End If > >> >> > ElseIf NewImg = vbNo Then > >> >> > ' If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture > >> >> > = > >> >> > ("") > >> >> > Then > >> >> > ' End If > >> >> > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > >> >> > If DelImg = vbYes Then > >> >> > > >> >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture > >> >> > = > >> >> > 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.Picture = > >> >> >> LoadPicture("") > >> >> >> > >> >> >> -- > >> >> >> Rick (MVP - Excel) > >> >> >> > >> >> >> > >> >> >> "mooresk257" <(E-Mail Removed)> wrote in > >> >> >> message > >> >> >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... > >> >> >> >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.Picture _ > >> >> >> > = 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.Picture _ > >> >> >> > = 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! > >> >> >> > >> >> >> > >> >> > >> >> > >> > >> > > |
|
||
|
||||
|
Rick Rothstein
Guest
Posts: n/a
|
You are quite welcome. I would suggest you learn to not use GoTo statements
if you can help it as they tend to make code harder to read. Here is your code revised to remove the GoTo (all I did is negate the logical test in the If..Then statement, that is what the Not operator is doing, and move the code into the If..Then..EndIf block). I also remove to ElseIf statements because you had no code to execute for them. 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.Picture _ = LoadPicture(FileToOpen) End If ElseIf NewImg = vbNo Then If Not Worksheets("Sheet1").OLEObjects("Image1"). _ Object.Picture Is Nothing Then DelImg = MsgBox("Remove Current Photo?", vbYesNo) If DelImg = vbYes Then Worksheets("Sheet1").OLEObjects("Image1").Object.Picture _ = LoadPicture("") End If End If End If End Sub -- Rick (MVP - Excel) "mooresk257" <(E-Mail Removed)> wrote in message news:EDF6333D-BA2A-4543-BDCA-(E-Mail Removed)... > OK, I got it to work - this is the code I ended up with: > > 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.Picture _ > = LoadPicture(FileToOpen) > End If > ElseIf NewImg = vbNo Then > If Worksheets("Sheet1").OLEObjects("Image1"). _ > Object.Picture Is Nothing Then > GoTo Skip > End If > DelImg = MsgBox("Remove Current Photo?", vbYesNo) > If DelImg = vbYes Then > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture = > LoadPicture("") > ElseIf DelImg = vbNo Then > End If > ElseIf NewImg = vbCancel Then > End If > Skip: > > End Sub > > Thanks for your help Rick! > > "Rick Rothstein" wrote: > >> You need to put your code between the If..Then statement and the End If >> statement if you want it to be controlled by the logical expression in >> the >> If..Then statement. Try 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.Picture _ >> = LoadPicture(FileToOpen) >> End If >> ElseIf NewImg = vbNo Then >> If Worksheets("Sheet1").OLEObjects("Image1"). _ >> Object.Picture Is Nothing Then >> DelImg = MsgBox("Remove Current Photo?", vbYesNo) >> If DelImg = vbYes Then >> Worksheets("Sheet1").OLEObjects("Image1"). _ >> Object.Picture = LoadPicture("") >> End If >> End If >> End If >> End Sub >> >> NOTE: The above code is off-the-top-of-my-head... I didn't try it out (I >> simply restructured what you already had). >> >> -- >> Rick (MVP - Excel) >> >> >> "mooresk257" <(E-Mail Removed)> wrote in message >> news:70580411-358A-47D4-9FC6-(E-Mail Removed)... >> > When I put this in my code posted earlier: >> > >> > If Worksheets("Sheet1").OLEObjects("Image1").Object.Picture 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.Picture 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" <(E-Mail Removed)> wrote in message >> >> news:0AA72627-8695-4236-9BA4-(E-Mail Removed)... >> >> >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.Picture Is >> >> >> Nothing >> >> >> Then >> >> >> >> >> >> -- >> >> >> Rick (MVP - Excel) >> >> >> >> >> >> >> >> >> "mooresk257" <(E-Mail Removed)> wrote in >> >> >> message >> >> >> news:363F73F5-23BF-4F7C-8C77-(E-Mail Removed)... >> >> >> > 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.Picture >> >> >> > _ >> >> >> > = LoadPicture(FileToOpen) >> >> >> > End If >> >> >> > ElseIf NewImg = vbNo Then >> >> >> > ' If >> >> >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture >> >> >> > = >> >> >> > ("") >> >> >> > Then >> >> >> > ' End If >> >> >> > DelImg = MsgBox("Remove Current Photo?", vbYesNo) >> >> >> > If DelImg = vbYes Then >> >> >> > >> >> >> > Worksheets("Sheet1").OLEObjects("Image1").Object.Picture >> >> >> > = >> >> >> > 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.Picture = >> >> >> >> LoadPicture("") >> >> >> >> >> >> >> >> -- >> >> >> >> Rick (MVP - Excel) >> >> >> >> >> >> >> >> >> >> >> >> "mooresk257" <(E-Mail Removed)> wrote in >> >> >> >> message >> >> >> >> news:7B79E512-1D0A-4CCA-B322-(E-Mail Removed)... >> >> >> >> >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.Picture _ >> >> >> >> > = 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.Picture _ >> >> >> >> > = 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! >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> |
|
||
|
||||
|
|
|
| |
![]() |
| Thread Tools | |
| Rate This Thread | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| List<> of struct with property. Cannot change value of property. why? | Zytan | Microsoft C# .NET | 45 | 17th May 2007 07:17 PM |
| How could I change the NavigateUrl property at runtime based on another controls property ? | Radu | Microsoft ASP .NET | 2 | 25th Jan 2007 10:51 AM |
| I opened an image and want to change its size, then display it in a ImageBox. | cyshao | Microsoft C# .NET | 2 | 31st Mar 2005 09:41 AM |
| Change Read/Write Property on Property Grid | Carl Gilbert | Microsoft VB .NET | 1 | 26th Feb 2005 07:18 AM |
| Re: update imagebox | Steve Rindsberg, PPTMVP | Microsoft Powerpoint | 3 | 21st Aug 2003 03:07 PM |
Powered by vBulletin®. Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2010, Crawlability, Inc. |




