Determine Original Dimensions Of ActiveX Image Control
May 12, 2014
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.
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
How do I determine which control the user is currently modifying on a multipage form (either changing, enterying or exiting the specific control). when I use "userform1.activecontrol" i get "multipage1" as the control name but I need the actual control on the specific active multipage. (also the .TABINDEX is for the multipage regardless of the on-page control) I use a generic data-field change SUBroutine so need the control name (and the TABINDEX) to provide my SELECT CASE. (so every fieldname_CHANGE calls the same SUB [with no parameters])
I am trying to create a workbook where the first worksheet has a list of Checkboxes and each checkbox 'unhides' or 'hides' subsequent worksheets within the workbook, depending on whether the box is checked. I can make the checkbox, I can record the macro.
Sub Test_checkbox() ' Test_checkbox Macro Sheets("Dist").Visible = True End Sub
How do I link them together? Ideally, I'd like to have my boss be able to 'play' with which sheets are visible (check, uncheck, check, uncheck, etc) .
Is it possible to get the multiselection the users make in the listbox correlate directly to the original cells the rows pertain to?
the reason is I need to be able to get the users to multi select the cells they want to print and then send print commands to the documents ancd drawings located in their hyperlinks. So if there was some way to pull the Cells selections then I could work with this indefinately. I''m unsure whether this is feasable, I was thinking of putting the multiselect results into an array using the text values then doing a vlookup or something, but the original drawing register sheet doesn't have unique items just unique hyperlinks :P I cannot manipulate the physical layout of the sheet itself as other macro's are located on these sheets.
I copied a routine from this forum that would email a single sheet from a 10-sheet workbook to a recipient. This worked great for a long time, then all of a sudden I started getting the "ActiveX control can't create object" error. Here is my
I have an ActiveX Label control with a transparent background. When I click on the label the background turns white and stays that way as long as the mouse is over the label, obscuring whatever's underneath. (It also very slightly alters the character spacing.) What object/property controls this? How do I adjust it?
While I'm here, is there an easy programmatic way to assign arbitrary RGB colors to ActiveX controls? The palettes available from the Properties window are fairly limited. A google search for "ActiveX colors" yields a deluge of marketed products, so it's hard to find useful information.
Since Form Controls comboboxes don't allow font editing, I need to switch to ActiveX...
The combo box values come from the following cell range:
Those values are, from top to bottom: "select distance", "50 Miles", "100 Miles", "150 Miles".
The following macro is also assigned to the combobox:
I have two issues. The first is that the macro doesn't seem to be working. It is supposed to filter a list of cities within 50, 100 and 150 miles of a user input zip or city. The original Forms Control combo works but not ActiveX after I put the code in the change event:
The second issue is that the last clicked value in the ActiveX comboBox replaces the top one.
Ex: from top to bottom, the combobox should display:
but if the user clicks "100 Miles", the combobox is then going to display
If the user then select "50 Miles", the box displays:
I have created several macros where i use an active-X control button. This button is pressed and the macro begins...........but every now and again this button changes size for no apparent reason.
I have read countless articles/posts about what "may" be causing the problem but i have never read anything which clearly identifies the soln to this problem and the problem has been out there for years. To make matters worse the problem can not be duplicated on any regular frequency that i am aware of............so its not like i can post a file that will show the problem.............
I am using the following code to copy a template to a new worksheet each month:
Code: Sub CopyTemplateNewMonth() Application.ScreenUpdating = False Dim SourceRange As Range, DestRange As Range
Everything copies over except an Activex Control button. I also have form control buttons with macros assigned to them, and they copy & paste just fine. The code assigned to the ActiveX button also copy's & paste's just fine...but the button itself does not.
RE: Macro ActiveX Click Control--It stops when on another sheet
Macro runs OK when run from menu.
An activeX click button was put on sheet B.
Right click the control, View Code, Paste in code from macro, then click button.
It runs the part of the macro that applies to sheet B, goes to previous sheet A, and then stops. The range select line for the named range on sheet A is highlighted in yellow. It stops when selecting any range or cell on sheet A, like B2.
Any idea why this code does not work on sheet A when ActiveX button is on sheet B? Is there someplace else that the control can go? Using Excel 2000.
See part of code below, which starts on sheet B:
' Macro recorded 11/22/2007
Range("SortAll").Select Selection.Sort Key1:=Range("T2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom ActiveSheet.Previous.Select Range("FormBase").Select (STOPS HERE) Selection.Copy Range("Formul").Select ActiveSheet.Paste ActiveSheet.Next.Select FormBase is a named dynamic range FormBase=OFFSET(A!$A$2,0,0,1,MATCH(1E+306,A!$2:$2))
After programmatically creating a new activex checkbox, I want to create a sub for it's click event. I have given the object a name, and fortunately the code for it's click event is a one-line call of another sub, but how?
The sub would look like the following except be named after the new control (obviously), and yes, it is just the number in the name that changes:
I have an excel application which works extremely well in one single instancec. It has a bunch of ActiveX control objects on the worksheet. Generally I call them by convention Sheet1.Cmd.show.
I have since experimented with having multiple instances of excel running on the machine. I start to notice something very strange. The first instance I open and run all the activeX buttons are all clickable. As soon as I open a second instance of an excel program all the activeX buttons on the worksheet are not even clickable. They are enabled by my program, but not clickable as if they were not there at all.
I also try open a normal excel workbook then followed by my excel program in a second instance. Even though the first excel file does not utilize any activeX objects all my buttons on the subsequent instance are not clickable.
The weird thing is all my activeX control objects on a userforms are still clickable and call to all my planned events in my program. It is just all the activeX controls on my worksheet that do not have any reaction at all.
I always think when one opens a new instance it will be totally indpendent and would even occupy another CPU if my machine has more in it. If they are truly independent then I am at a loss to understand why my activeX controls would fail to work at all.
I have a form that collects four pieces of information from the user and places each into columns A, B, C, D on a sheet. I would like to automatically add an option button to column E so that a user could select it and then click a control button to delete the corresponding row.
Is this possible or is there maybe a better way to do this in Excel 2007.
Can Active-X control button macro be placed in a regular module, or does it always have to reside in the sheet module? Or is the only way to accomplish this is to have the macro in the regular module being called from the button macro in the sheet module?
I somehow seem to remember a way to move/assign an Active-X ControlButton macro to a regular module, but maybe I'm wrong?
I've several check boxes on a worksheet. Some of the check boxes control the values of other through the _click event. However, when I try to change the value the event attached to the control in questions fires.
application.enableevents = False
would prevent events being fire from within the macro but this only seems to work when I step through the code.
I understand that I could set a global variable to do this and will probably go down this route anyway - but I am interested to know how/when I should be using the EnableEvent method (as I am sure this should be the way that I use it)
In A1 there is an ActiveX Control Text Box inserted, now in A1 cell which is beneath this text box contain the formula that if A9 is blank than "Customer Name" should appear else it should show blank. But the problem is when I write some thing in this text box which is connected with A9, formula works as "Customer Name" disappears but when I delete in text box it simply acts as if something is still present in cell A9 and formula does not comeback to "Customer Name" again & therefore in order to appear "Customer Name" I have to go to A9 and press delete button to get the desirous result from the formula.
Readers are requested to make this formula work becz the situation in which this formula has been invented is well fitted and not other formula can supplant it.
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)
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 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.