I know how to load a picture onto an image control using VBA code, but how do I clear the picture? (NOTE: I am not talking about using the properties window in the VBE, I am talking about coding in VB)
I want to delete a picture from an image control in a worksheet when pressing a button. So my code is:
Private Sub CommandButton1_Click() Sheets("Sheet1").Image1.Picture = LoadPicture("") End Sub
Well, the problem is that this code only works when I create it. If I save and close the excel file when I open it again and I press the CommandButton1 I get the following error: Run-time error '-2147417848(80010108)' Method "Picture of object "IImage" failed.
My workbook simply has multiple columns of data which will be summarized visually in a tag cloud (I have the tag cloud part taken care of already creating either a jpg or png, I simply have to change the extension within a batch file to change between picture formats)
I need to have the tag cloud image display and update depending on which column the user would like to summarize (for now I have simplified the issue by only having one of the data columns in my workbook, and will worry about the user selection of the data column to be summarized later).
My Main Question:
Focusing on the image display and updating now, whether it be an ActiveX Image Control or any other way. I've been playing around manually before I try and code it and I can not get either a jpg or png file to attach to the ActiveX control (both of which cause an Invalid Picture Message).
The file name can stay the same if need be and for now I think/assume that'd be easiest (I have my Tag cloud generator just replacing the previously existing image file of the same name).
Would ActiveX control be the way to go for this dynamically changing image?
I have a number of image controls on a user form, each being loaded with an image from file.
Image1 being loaded with a picture of a bus image2 being loaded with a picture of a school
And so on
Now what I am trying to do is when that image is clicked the name of that image is passed to a textbox
So the action would be
1 image of bus loaded into image control1 , the name of that image being bus.jpg 2 image is clicked 3 the name bus.jpg appears in a text box
Here is what I have so far
Private Sub Image1_Click() DataInput.TextBoxItem.Value = bus.jpg
DataInput.TextBoxItem.Value= Image1.Name - this does not work
Which works but as you can see this is static, as I have supplied the value , were as I would like the clicking action to pick up the name of the jpeg being displayed
So expanding upon this if say image1 is loaded with say a picture of a car instead of a bus
LValue4 = "E:Car.jpg"
Image1.Picture = LoadPicture(LValue4)
Now when it is clicked the name of the image being displayed in image control1 would be Car.jpg
And it is this value I wish to transfer to a text box for now will do more with it later
In addition to this I am not sure if the best idea is to have a number of image controls and load each with an individual picture or have one image control and swap the picture by clicking a command button
I am trying to display an image ("image") on an image control ("Image1") placed in a worksheet ("Sheet1"). The problem is that I want this action to take place when I press a button in a user form. I am trying to use the following code, but it seems that VBA does not recognize the image control ("Image1") in the worksheet.
Private Sub cmdDisplayImage_Click() Dim image As Variant image = ThisWorkbook.Path & "sun.jpg" Sheets("Sheet1").Activate Image1.Picture = LoadPicture(image) End Sub
In Excel 2010, is there any way to paste a picture into a small picture/diagram box, and upon double clicking the picture it would explode to a larger size? And I guess double clicking it again would make it return to its original (smaller) size. I would be pasting several pictures into several different picture/diagram boxes and would need this to be a relative reference so that upon selection it explodes the appropriate picture?
I have a created a worksheet button using an image holder (because I couldn't get the image to display properly on a normal command button) and when I click on the button, it distorts the picture because of its default zoom feature. I tried resetting the picture to its original size using the .height and .width properties but this produced an error saying the object doesn't support this property (weird because they were available through the suggestions menu that's available when you're coding). If I could just reload the original image, that would do the trick but I am not sure how to do that without using an file path that would only work on my PC and not on other users'.
Sub test Sheets("Sheet1").Image1.Picture = LoadPicture("") Sheets("Sheet1").Image1.Picture = LoadPicture(CFPicPath + CFPic) Range("A1:G37").CopyPicture Appearance:=xlScreen, Format:=xlPicture Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste end sub
I have an Invoice setup for a Car Servicing Garage in excel. It does a few things:
1) On saving the workbook it will take a jpeg screenshot of the worksheet and save it locally
2) The name of the created jpeg file is taken from cell B9
Cell B9 contains the vehicle registration number. So, obviously my problem is that if a the same car comes in on more than one occasion (which happens frequently), the original jpeg will be replaced as the file name is not appended. This will mess up the invoice records. So what I would like is for it to acknowledge that a jpeg file with that name already exists and to just append a "_1", "_2", "_3" etc on the end of the original jpeg file name for the new jpeg file name. I have attached the my excel file so ideally, if someone could insert the necessary code or PM me that would be great.
I'm trying to make this macro work to resize images for our fashion Look Book. In theory, it should work. But of course it does not Here is the code we are using:
Sub BIGcrop() Selection.Height = 507.6 x = Selection.ShapeRange.Width y = x / 2 Z = y - 144
I want all my pictures to have a height of 7.05 inches and a width of 4. The height comes out different everytime depending on the scaling of the template I'm using. I need it to adjust accordingly. I'm open to having the image move into merged cells, as long as it will first adjust the height and then crop the sides (so the orientation stays the same).
The file I am trying to view is saved as follows: C: Test.gif
What I have done.Added a image control to a dialog box, called image1 Added the following event handler to image1: x = c: test.gif Image1.picture = loadpicture (X)Pressed F5 to test the code and brings up a dialog box with a blank image box.
Not called the userform in the main module (didn't seem much point considering the test failed)
where I am going wrong with this, the correct code?
Also in inputting the address of the file I could not use the C: format as this brought up an error. What is the correct format?
I am able to work out a code to upload pictures from my files using this:
Private Sub cmdfind_Click() Application. ScreenUpdating = False Dim strfind As String Dim rsearch As Range Dim strfolder As String Dim strname As String Dim strpic As String Dim b As Range Set rsearch = Worksheets("m").Range("ap3", Range("ap65536").End(xlUp)) 'define path to images strfolder = "F:SEC FILESMAC2PIC" 'get data from userform strname = frmsearch.txt201.Value 'check if pic exists strpic = strfolder & strname & ".jpg".......................
How do i avoid the 'File Not Found' error if the picture is not available in my file folder?
I have a worksheet that contains a number of ActiveX image controls, which have been scaled to a uniform height to serve as thumbnails.
I have also created a class, where each instance is initialized with one of these image controls, and events (specifically the on click event) are captured. When the user clicks the picture, it opens a userform containg the same picture. However, I'd like that picture to be at its original size, not the scaled-down size.
how can I determine the original dimensions of a picture used in an image control? I can tell that the original resolution is there (by changing the PictureSizeMode to clip), but I can't find any properties that show me how big that image actually is, only ones that return or set the size of the object itself.
This is weird - if you delete a sheet that contained a control then
a. showing a modeless userform resluts in a userofrm that goes invisible at subroutine End b. public variables lose their value
These things do not happen if the sheet did not contain a control. Attached is an example file - put the inputfile.xls in your default file location (or add a path in the code) then open the ProblemDemo.xls and run the main macro to see it fal - isthis another Excelbug I've found?
I have several non-modal userforms in my App, some of them have date-fields that require manual entry typing of dd/mm/yy etc (No single userform has more than one date-box in it, this I think may be pivotally useful)
Now the Userform 'Calendar' that is built on the class of the same (cCalendar) name, has the write value line 'ActiveCell.value = theCal.value'
I'm looking to change this to refer to the correct userform.Textbox value, depending on which form is open.
I would imagine I could simply have a global string, whose value is set (or re-set) whenever a Userform is initialized (some sort of 'ActiveUF.value = Me.Name), where I get lost is referring to the components by name, so as to have a case statement by where I go:
Private Sub theCal_AfterUpdate() Select Case ActiveUF Case "AddForm" application.vbe.components("AddForm").controls("AddFormDatePicker").value = theCal.value Case "EditForm" '.... etc end select end sub
better way of doing this (instead of passing around the userform name as a variable) - or proper syntax for referring to controls outside of the 'active' userform (but an open userform nonetheless)?
Every time I have to do this particular thing with userforms, I completely forget how, and the object browser always leads me on an infinite loop of Application.vbe.activevbproject.vbcomponents.vbe.active....
PS - there may be one slight complication to the process - one of the forms, has a 2-tab page in it, each page having similar (but named differently) fields. So I may need to be able to throw in 'Activepage' or whatnot
I am rotating an image on a userform by uploading different gif images to simulate the rotation. There is an annoying screen flicker around the image when changing images that I would like to get rid of if possible. how to get rid of the flicker or a different technique I could use to rotate an image? 1st attempt - uploading different pictures
For h = 1 To Sheets("Bar Contents"). Range("B" & ItemRow) Step 1 PictureLocation = ThisWorkbook.Path & "PicturesTransparent" & Sheets("Bar Contents").Range("C" & ItemRow) _ & " " & h & ".gif" GameUserForm.DrinkAnimation.Picture = LoadPicture(PictureLocation) Sleep 50 DoEvents Next h.........................