Access Control Properties Of Controls Within UserForm, MultiPage & Frame
Jan 30, 2009
I want to access the Properties of a number of controls in a running form, and these controls may or may not be contained in a Frame or a MultiPage.
In particular I want the Top and Left for these controls, which means I have to first find out if the control is contained in a Frame or MultiPage so I can get the reference for Top and Left. I'm ok with doing this for controls inside a Frame, but the MultiPage is eluding me. I get an error when I try to access these controls and it looks like they are actually owned by the individual Pages of the MultiPage.
how do I find out if a given control is contained in a given MultiPage?
Validate UserForm MultiPage and Frame Controls
View 3 Replies
ADVERTISEMENT
Dec 3, 2006
I am in the process of creating a module to validate a MulitPage UserForm that is composed of, among other controls, multiple frames, each containing a TextBox and two OptionButtons. I need to identify those frames where the TextBox value is not null and neither of the OptionButtons have been selected. The module will pass as variables the TextBox value, OptionButton captions and Frame caption to another module that will create a UserForm with the invalid Frame/TextBox/OptionButtons sets for the user to correct.
The interim code listed below runs as a command button on a test UserForm. The MsgBox displays only the first of the OptionButton’s caption as Opt1 and Opt2. Can anyone tell me why and where I went awry?
Public WithEvents As MSforms.TextBox, Opt1 As String, Opt2 As String, vtxt As Long, vFrame As String, vTag As String
Private Sub CommandButton1_Click()
Dim pPage As Page, cCont As Control, vCont As MSforms.Control
'Dim Opt1 As String, Opt2 As String, vtxt As Long, vFrame As String, vTag As String
Is there a more elegant way of accomplishing this? (Control Tags are already spoken for.)
View 4 Replies
View Related
Aug 12, 2006
I am trying to implement code that can handle a dynamic number of objects, specifically check boxes.
I know of eval( ) in perl that allows one to dynamically create command lines. For instance, the following code would change all of the Checkbox values to 1. The syntax may not be correct but the idea is solid.
Do While i < num_checkboxes
eval("Checkbox" .i. ".Value=1)
Loop
Does this funtion also exist in excel?
View 6 Replies
View Related
May 8, 2008
I have a Userform which has a series of Frames that contain Option Buttons. What I would like to do is check that an option button in each of the frames has been selected. If there are any missing then I need to inform the user - I would like all frames to be checked at the same time on the click of a button.
View 2 Replies
View Related
Feb 13, 2007
What I'm trying to do:
Create a "search" userform that pulls data from a spreadsheet of raw data (hardware specs) and organizes it into a multipage control. Each page of the MultiPage has a different piece of hardware with simliar data entry categories (height, weight, calibration date for example).
Each page at the moment contains labels and textboxes only. The idea is to place data from the spreadsheet into these textboxes, and create new pages as needed during runtime.
My current issues:
Just for testing/ debugging, I have a "_Change()" code that is triggered by changing pages within the Multipage. When I run the control, I trigger the change, but the textboxes and labels disappear.
I don't have much code to show, other than basic _Change() structure containing a msgbox for debugging.
This is related to a locked thread, where "imgUpdating" and "DoEvents" were referenced. I tried DoEvents, without success. I also don't know what "imgUpdating" is, but it sounds like it helped the other person with a similar issue:
UserForm Controls not displaying at runtime
View 7 Replies
View Related
Dec 29, 2006
I have successfully created validation code that operates as a command button. The code listed below identifies in a MultiPage UserForm non- null TextBoxes whose pair of associated OptionButtons have not been selected. (The TextBox and OptionButtons all lie within a Frame and their are 60+ sets of these throughout the UserForm.) A MessageBox alerts user to select one of the OptionButtons.
Private Sub CommandButton1_Click()
Dim cFrameT As Control
Dim cCtrlF() As Control
Dim pPage As Page
Dim cCtrl() As Control
Dim Num As Integer
Dim FNum As Integer
Dim vOpt As Boolean
Dim Opt() As String
Dim lPage As Long
Dim vFrame As String
Redim Opt(Num) As String
Redim cCtrl(FNum) As Control
Redim cCtrlF(Num) As Control
Num = 0
FNum = 0
' Loops through all Multipage pages
For lPage = 0 To Me.MultiPage1.Pages.Count - 1..............
View 2 Replies
View Related
Mar 29, 2008
I have frame on a userform with command buttons. Is it possible to loop thru and capture the command button captions in a textbox. I'm trying to put together keyboard on a userform, so the user can populate a textbox with letters or phrases.
View 6 Replies
View Related
May 9, 2009
I've started experiencing a strange problem. The control toolbox keeps appearing when the first page on a multipage userform is activated. I can't figure out what's causing this, and after searching the forum, with no luck, I thought I would see if anybody else is experiencing the same problem, and how to fix it.
View 2 Replies
View Related
Feb 4, 2014
I have a userform which has a number of multipage controls nested inside each. So, the parent is Multipage1 with 2 pages. Page 1 of Multipage1 has a second multipage control (Multipage2 which has 4 pages). In Multipage2, page1 there is a 3rd Multipage control (Multipage3 which has 2 pages). In Multipage2, page 2 there is another multipage control (Multipage4 which has 3 pages)...and so on! I know this sounds complicated, but I am trying to get the caption of the selected multipage.
There are commandbuttons in all of the pages, which when clicked need to return the caption name of the multipage where they sit.
I have started the following code, but suspect there must be a better solution:
VB:
With Sales
If .MultiPage1.Value = 0 Then
Hardware_Purchases_Input.TextBox6.Value = .MultiPage1.SelectedItem.Caption & " - " & .MultiPage2.SelectedItem.Caption & " - " & .MultiPage3.SelectedItem.Caption
End If
End With
View 3 Replies
View Related
Feb 27, 2013
I have built a quoting tool and Userforms to act as a user interface to this tool. The userforms basically just feed user input back to relevant sheets. I have a number of textboxes, listboxes and radio buttons on multipages. Now the issue is that each control has an Afterupdate or Change event associated with it. Consider this scenario:
I have 4 product categories (represented by radio buttons) : Cat A, Cat B, Cat C, Cat D
Each category can have up to 10 line items which are represented by combo boxes.
Now lets say the user has selected Cat A radio button, he selects a product from the combo box (the cursor or focus is still on the combo box) and clicks on Cat B radio button. Here is the issue: on the first click, Afterupdate or Change event of Combo box fires but radio button is still unselected. The user has to click Cat B radio button AGAIN to select Cat B radio button. So essentially it takes two clicks with a slight pause between them to change categories.
One way to avoid this is to press Enter or 'tab through' each field. But this is not very intuitive. I have tried using Exit, Afterupdate, Exit, Change events without success. I can't use ControlSource option because the cell to input info to is dynamically selected. I have used xlCalculationManual for some text boxes but can't use this since some inputs on the userforms depend on the right value being calculated on the sheet.
View 5 Replies
View Related
Sep 14, 2006
i have a textbox on top of a picture box but i cannot replicate it with a new textbox or combobox.
when i place the control on the picture box it disapears?
View 9 Replies
View Related
Jul 2, 2007
I am trying to change the property value of all optionbuttons on userform1 via userform2's deactivate event
Private Sub UserForm2_Deactivate()
If userform1.Controls = OptionButton Then
Value = False
End If
End Sub
View 5 Replies
View Related
Nov 20, 2013
I am using table driven forms controls on userforms. E.g.:
Excel 2010ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAG1UI NameMultiPage ParentPage
ParentControlNameTopLeftHeightWidthCaptionTagControlTipTextSpecialEffectWordWrap
MultiLineBorderStyleBorderColorBackColorBackStyleForeColorColumnCountColumnWidthsListStyle
[Code] .....
I use the following (work in progress) function to add the controls to the userform (usually added to page or frame).
Code:
Public Function AddControls(ByVal objTarget As Object, ByVal strUiName As String)
Dim rngControls As Excel.Range, rngProperties As Excel.Range
Dim rngControl As Excel.Range, rngProperty As Excel.Range
Dim objControl As Object
With shtFormUI
Set rngControls = .Range("D2:D" & .Range("D" & .Rows.Count).End(xlUp).Row)
[Code] .....
Now I need a means of trapping the controls events. I thought I could use a class, e.g.:
cFormEvents
Code:
Option Explicit
Public WithEvents lblLabel As MSForms.Label
Public WithEvents tbxTextBox As MSForms.TextBox
Public WithEvents cbxComboBox As MSForms.ComboBox
Public WithEvents lbxListBox As MSForms.ListBox
Public WithEvents cbtCommandButton As MSForms.CommandButton
Private Sub lblLabel_Click()
[Code] .....
It seems I cannot reference the controls because I they are added at runtime. For the given example, I want to run whatever procedure name appears for lblPrimaryContact in column AC (click event). So in my userform module I instantiate the class, but I get an error when I try and reference the control:
Code:
Set m_clsFormEvents.lblLabel = Me.lblPrimaryContact
Error is "method or data member not found".
Any alternative method to grab the click event for the control added at runtime?
View 9 Replies
View Related
Mar 10, 2014
I can't refresh the values in the captions in the labels that have been dynamically added to Frame 1 on page 1 of a multipage control. I have added the salesperson' name with a checkbox, and three labels for each sales person. The captions for the labels are the values for the number of sales, gross sales amount and commission. The captions get these values from an Array "SalesAry()".
Outside the multipage control I have another frame with the total of salesmen, service, product, customers, total sales, total commission total product sold. The user can check the checkboxes next to each sales person to include in the final report. After the user checks some of the checkboxes, there is an "Update Totals" Button on the userform (outside the multipage) to update the totals.
This works, but the values in the sales person's labels do not update. I have tried to repaint the userform me.repaint or me.frame1.repaint but the labels in the frames on pages do not repaint or refresh?? I have also tried to focus the userform to the multipage by inputting "multipage1.value = 0" just prior to me.repaint. I have three other pages on the multipage. Same issue/problem. Page2 is the Service person their number of accounts, gross sales and commission, Page 3 is the Products names Number sold, gross sales and commission and page four is the Customer name number sold and the commission.
In the end I want the user to select (check) only the salespeople, Service person, Products and Customers to include on the report. But since I can't get the labels in the frames in the multipage to update, it just looks confusing. I know that the Arrays are updating because the Totals keep getting updated correctly based on the selections, but again it looks confusing because the total don't match the values in the labels?
View 5 Replies
View Related
Mar 3, 2008
I seem to have a bug i can't quite figure out with my code - its causing excel to crash each time it reaches this line (when its commented out - the form runs fine - otherwise "excel has encountered an error")....
Set frameFullX = frameFull.Controls.Add("Forms.frame.1", "frameFull1")
frameFullX is declared as a control and frameFull is a frame already on the userform.
Anyone know what I might be doing wrong (I'm going to try restarting and see if was just an issue with my machine or not?
View 6 Replies
View Related
Oct 4, 2007
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])
View 3 Replies
View Related
May 15, 2006
Can you run a procedure when a particular page in a multipgae control is clicked rather than use the Multipage change control.
View 5 Replies
View Related
Jan 23, 2014
I have the following code in a module that works fine for referencing a textbox on a page of a multipage on a userform, but I'm stumped trying to figure out how to reference the page object itself vs the multipage then referencing the page later. My code is:
Code:
Dim a As MultiPage
Set a = UserForm1.MultiPage1
a.Page2.P2_ScoreTotal.Value = (Val(a.Page2.P2_Q1_Score.Text) +
[Code]....
View 8 Replies
View Related
Jan 30, 2009
For Each ctl in Frame1.Controls
'Do whatever
Next ctl
I also know you can limit the controls you diddle by doing:
For Each ctl in Frame1.Controls
If TypeName(ctl) = "TextBox" Then
'Do whatever
End If
Next ctl
But this gets absurd when it gets to the point I want it:
For Each ctl in Page1.Controls
If TypeName(ctl) = "Frame" Then
For Each ctl2 in ctl.Controls
If TypeName(ctl2) = "OptionButton" Then
' Do whatever
End If
Next ctl2
End If
Next ctl
Is there any way to simplify this? Can I define ctl as frame, for instance, and then it will only look for every frame object in Page1? Or is there some other trick I'm missing? Or am I just making userforms with too many wrappers?
View 9 Replies
View Related
May 9, 2005
In Excel 2000 there seems to be a problem with setting the focus in a UserForm TextBox if the SetFocus method is applied in the same submodule as the UserForm.Show method. Microsoft's circumvention for this is to put the SetFocus command in the form's Activate event submodule.
This seems to work OK except when the TextBox you are applying the SetFocus to is the first control inside a frame. It works if the TextBox is not the first control, and it can be circumvented by first setting the focus on a subsequent control then switching the focus to the intended control.
However, the circumvention is not that useful if there is only one TextBox control in a frame or, as in my current project, if you try to create a generic piece of code to validate controls from multiple forms and set the focus from within the generic code.
Does anyone know of a way over overcoming this problem and being able to directly set the focus to the first TextBox inside a frame?
View 9 Replies
View Related
Oct 10, 2013
I am writing a macro to automate the filling up some data from excel to company website. I have changed the website name in this post for data protection purpose. The excel will login for different clients by using the combination of username and password for respective clients and then some data are required to be inserted in a text box on a web page, I think the text box is on a form and form is within an iframe, within the web page. Once the data is inserted into text box, one button (Submit), which is also on the same form, is to be clicked.
On the click of a button, the updated data appears on another section, I could not make out if it is an form or frame, which is under the abovementioned form. Once we are happy with the way data appears on the web page, we have to click another button (Update), which is on the same section, to finally updating the data on website.
I wrote the following code to login to the website and then to navigate to the web page where I have to fill up the performance numbers in a text box.
The first problem is how to access the text box inside the form from VBA so that the macro can write a number in that text box and how to access the button to submit the data. The HTML code, which can be seen on click of F12, is attached below.
The second problem is how to access the Update button inside the other section, so that the data will be finally uploaded.
VB:
Sub LoginToCorpAccount()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
[Code]......
View 2 Replies
View Related
Aug 23, 2007
I am creating a bar inventory/"numbers" sheet for a corporation. I have been searching on and off for a week or so to find an answer or a tutorial on what I am looking to implement into this worksheet. I want to take a userform, with a multipage control, and have the control for each tab, show me a different part of the worksheets. For instance, the first tab would be inventory, the second tab would be ordering, the third tab would be weekly numbers, etc ... I am wondering how to "add ranges to the multipage control in order to make it a "viewer". I have found tutorials on how to print, enter info into the form and save it to the sheets using a button, but I can't find a tutorial on how to implement the control on how to make tabs show the ranges. Can someone point me in the right direction on a tutorial, or maybe if willing a small spreadsheet with a mulitpage control on it, showing how to add the ranges from different worksheets?
View 14 Replies
View Related
Feb 26, 2008
I've created a custom ribbon which contains checkboxes that hide or show columns.
I would like to change the enable state of the checkboxes while the user is interacting with the spreadsheet.
For example:I would like to disable all of the checkboxes if they are not viewing sheet1I would like to disable the second checkbox if the first checkbox is unchecked.
I know how to set these all on initialize. I just have not figured out how to update these controls after it has been opened.
View 4 Replies
View Related
Nov 30, 2006
I have a form that is dynamically created at runtime. I have assigned the controls to a frame in VBA and also attached a horizontal scrollbar manually to that frame.
How can I control the scrollbar in VBA to appear, when columns of controls added to the frame exceeds 10. If not I want the scrollbar to be invisible?
Private Sub UserForm_Initialize()
Const cTextBoxHeight As Long = 16
Const cTextBoxWidth As Long = 40
Const cGap As Long = 10
Dim W As Integer
Dim a As Integer
View 9 Replies
View Related
Feb 15, 2014
UserForm1, page5. From Combobox1 I choose a city and the textboxes give me the values from Sheet3. I'd like to color in green the smallest value. for example, if for LHR I find for A-4214, B-4420, C-3127 => value 3127 to be green. The problem is I have more textboxes in other pages and some of them are colored in green also. Is possible to reffer to these textboxes from page5 only?
View 8 Replies
View Related
May 28, 2012
I'm using a multipage control on a form that has the style set to fmTabStyleButtons. So it uses buttons instead of tabs. I named one of my buttons (tabs) to Close. Can I set this up to where just pressing the Close button will cause it to exit the app not just go to that page?
View 9 Replies
View Related
Apr 22, 2007
i am trying to make the multipage form so that page 2 ,3 is password protected intially the form will open read only, with access to subsequent pages through a password.
View 9 Replies
View Related
Nov 20, 2013
I have about a googol conditionally formatted cells in a workbook. Some of these cells are formatted to display, in particular circumstances, a rather unpleasant shade of orange.
I now need to change that colour (to an even more unpleasant chade of orange).
Can I loop through all cells, test whether any of the conditions apply the colour in question and if so, set it to something else?
View 2 Replies
View Related
Jun 1, 2012
I'm trying to use the Transition property for the multipage control without much luck. So far I have a userform with a multipage control on it.
Code:
Private Sub UserForm_Initialize()
With MultiPage1
.TabOrientation = fmTabOrientationLeft
.MultiRow = True
.TabFixedHeight = 30
.TabFixedWidth = 80
.Style = fmTabStyleButtons
.Value = 0
.TransitionEffect = 2 ' error here "object doesn't support prop"
End With
or...
Code:
UserForm1.MultiPage1.TransitionEffect = 2 ' same error
View 2 Replies
View Related
Oct 6, 2006
Last weeks I've had too few spare moments to answer questions, hope to pick that up soon. I have a strange problem now with some checkboxes on a multipage control.
Please see the attachment.
I want to check all the 5 boxes on a page if the box above is checked, and vice versa, uncheck them all if the box above is unchecked. I use code of Dave Hawley to loop through the checkboxes.
This doesn't work, but oddly enough, it works if I insert a MsgBox in the code.
View 6 Replies
View Related