Multiple Use Of One Userform
Nov 30, 2008In my worksheet I have UserForm1 which displays range B1:B10 in labels when called via a macro button in A1
View 9 RepliesIn my worksheet I have UserForm1 which displays range B1:B10 in labels when called via a macro button in A1
View 9 RepliesI inherited a spreadsheet that had an userform where the user checked off which 'pages' he wanted to print. The Ok button routine used if statements to run a routine for each 'page.' Here's an example of the original code for one page:
Sub Button2_Click()
Sheet7.Activate
Run "HorizontalPrintStuff" 'generic landscape pagesetup
With ActiveSheet.PageSetup 'specific pageset settings
.RightFooter = " Construction Assumptions"
.PrintArea = "CONSTRUCTION" 'the named range to print
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1 'this changes depending upon the page selected
End With
ActiveSheet.PrintOut
End Sub
The problem was it printed each page as a separate print job; and if you print to adobe, you get serveral files, not one file. That and it took a long time to run.
So I tried a different tack. If the checkboxes has true, then the printarea is set to that named range. If there were more than one named range on a sheet to be printed, I consolidated them. I did this with a bunch of if statements - very cumbersome.
Sheet3.Activate
'Sheet3.ResetAllPageBreaks 'disabled due to errors
Run "HorizontalPrintStuff" 'generic landscape pagesetup
With ActiveSheet.PageSetup 'specific pageset settings
.PrintArea = "DEVBGTALL" 'the named range to print
.FitToPagesWide = 4 'this changes depending upon the
.FitToPagesTall = 1
End With
I haven't shown all the code cause it goes on for 12 sheets containing 16 different printareas.
My current muck ups are .....
1) it prints every printarea/named range on a given sheet (I took out all the if statements trying to debug everything.) Is there another conditional argument that allows for multiple 'trues'?
2) the pagebreaks in printarea/named ranges that are multiple pages (like a 48 month schedule) won't stay set. I've tried both VPageBreaks(3).Location:= and .VPageBreaks.Add Before:=
3) the Sheet1.select false argument is always adding a random sheet to the end of the print job. Don't know why.
I can do all this in a recorded macro, just not the selection userform. I've thought about copying to another sheet or hiding columns and rows then printing, but that seems just as cumbersome.
To recap, i want to print out, as one print job, multiple printareas from mulitple sheets, based upon checkbox selection on an userform.
I am creating a userform that has multiple calculations in it. I understand how to do this in Excel but I have no idea what the order of operations would be with a user form. (UoM Cost) will = Unit Price / Quantity). The (Ext Cost) field would equal [Quantity x Waste% x UoM Cost (that needs to be calculated before) + Unit Price. (Cost Per Each) would = the "Ext Cost"....that needs to be calculated before / Quantity - Waste%.
Once I have these calculations, then need to click a button to either reset the user for for another record (or if I mess up) and a button to save the record to the excel spreadsheet in the background.
I have workbook with 12 sheets in it. each sheet is identical except that they are for each month of the year. i am using a userform to enter the data into each sheet. Each sheet will have different data.
I want to be able to use the same user form on each sheet but still have them insert into the open sheet. Currently I am creating duplicates of the userform for each sheet but it gets VERY!!! tiresome and it is making the workbook VERY large (5 mb so far). For example. the first sheet is "april". i open the userform and enter the data into the userform. the userform enters the data into the sheet.
now i go to sheet "may". currently I open a userform in that sheet that looks exactly the same as the userform in sheet "april" but is a completely different userform. I want to be able to use the userform from sheet "april" in sheet "may" but when in sheet "may" it inserts into sheet "may".
I have a worksheet "Master Log" with a UserForm "UserForm2" set up that has 4 comboboxes and 2 text entries. I already have the filtered unique values for each combobox sent to columns "O" thru "R" and they are dynamic ranges. I have the code to populate one of the comboboxes in the userform but cant figure out how to modify the code to have all four populated without getting ambiguous entry errors. And also, do I have to initiate the form for each combobox? Below is the code Im using for a single combobox.
Private Sub UserForm_Initialize()
Dim MyUniqueList As Variant, i As Long
With Me.ListBox1
.Clear ' clear the listbox content
MyUniqueList = UniqueItemList(Range("o4:o100"), True)
For i = 1 To UBound(MyUniqueList)
.AddItem MyUniqueList(i)
Next i
.ListIndex = 0 ' select the first item
End With
End Sub
Private Function UniqueItemList(InputRange As Range, _
HorizontalList As Boolean) As Variant
Dim cl As Range, cUnique As New Collection, i As Long, uList() As Variant
Application.Volatile
On Error Resume Next
For Each cl In InputRange
If cl.Formula <> "" Then
cUnique.Add cl.Value, CStr(cl.Value)
End If
Next cl
UniqueItemList = ""
If cUnique.Count > 0 Then
Redim uList(1 To cUnique.Count)
For i = 1 To cUnique.Count
uList(i) = cUnique(i)
Next i
UniqueItemList = uList
If Not HorizontalList Then
UniqueItemList = _
Application.WorksheetFunction.Transpose(UniqueItemList)
End If
End If
On Error Goto 0
End Function
I have a problem with vlookup, some of the items in the lookup array are not unique and vlookup gets confused with multiple matches, however if I can use a combination of 1st and second columns as the criterion then it would result in a unique match.
Problem is I don't know how to acheive this in vba (but I can with the worksheet formulas). (attached is a sample worksheet)
I have created this with text, command & list boxes with a view to creating an asset register.
So the options i have are premises, hardware, software & fixtures. I have tested so that these go onto 1 sheet ( at the moment all additions go to premises) but i require for it to go to there respective sheets i.e. a sheet for each asset.
But, due to inexperience with userforms and VB i don't know how to do this.
Also, how can i get a sequential number coming up for each asset on their respective sheets
I have 3 Databases for three different departments, namely Finance, Services, IT. These 3 databases are housed in the same workbook - Sheet 1(named Finance); Sheet2 (named Services) and Sheet3(named IT).
They each have the identical columns and column headings, but I have to maintain them for each of the departments.
I created an Excel UserForm to enable me to input data onto the first database (i.e. Finance). In the VBA editor, lefthand side, it has the name 'frmFinance', and all the codes are pasted on the righthand window of the 'frmFinance' sheet.
Is there anything I can do to be able to use the same UserForm to enter data onto the other two databases without having to create a new UserForm for each one of them. As indicated above, the three databases have identical columns and headings, and the data entered onto each of them are identical. The only difference is that they are for three different departments and I have to maintain each one of them - albeit in one Workbook.
I have a UserForm with a ComboBox for the currency (30-35 items) and a TextBox for the amount.
The currency codes are displayed like this: EUR, USD, RUB, GBP etc.
How do I paste the result of TextBox in a selected currency format in a cell in worksheet?
Example:
ComboBox value is "USD"
TextBoxValue is "500"
Cell A1 value should read "500 USD" as currency not text.
Is it possible to create a data base with the given sample below?
COLUMN A
COLUMN B
COLUMN C
COLUMN D
COLUMN E
UNIT TYPE
CONDITION
NAME
TELEPHONE NO.
DATE
1+1
SALE
Name1
tel1
3-Oct-12
[Code] ...
The Userform has 2 ComboBoxes and 1 ListBox
ComboBox1 will be the one of the Column A Value
ComboBox2 will be the one of the Column B Value
I did handle that ComboBoxes already....What I need only, when those ComboBoxes been selected the related datas will fill into the ListBox accordingly...
I'm trying to set up a small database using excel ... utilising a userform to populate the database.
I have a userform set up with the following fields:
Bike
Odometer
Date
Task1
Parts1
Cost1
Task2
Parts2
Cost2
Task3
Parts3
Cost3
What I would like the form to do is create rows based on the task, and generate rows of data as per the example below. For the 'activity' the bike, odometer and date are common, and a new row is created for each task.
In this example I have three tasks/parts/cost in the userform, but I plan on having around 20ish (xheck boxes, combo etc) ...
I use this vba-code in the UserForm VBA-Source(I know probably not the world's prettiest code but it works)
Private Sub UserForm_Activate()
CheckBox_ADD = False
CheckBox_Change.Value = True
CheckBox_Cleanup = False
'TextBox_ADD_Line
End Sub
Private Sub OK_Button_Form_Ctrl_W_Click()
Dim NewText As String ' NewText is used to define the input value for: ADD
I have a workbook with 250 worksheets and I'm trying to build a single userform to work with all of them and I'm using binding to do that. Reason for using binding is that information is scatered all over the place, I mean a single column contains more then five different types of data with blank columns left in-between to be used as seprator, I know it's one of the worst ways to arrange data. Anyhow, the best part is that all the worksheets have the same type of information in their cells as of any other worksheet so binding does seems to be a good way to go ahead but only if it's dynamic enough to change accordingly with the worksheets.
Now I have already created a navigation-bar for it so I can use the same code for a drop-down menu list but what worries me the most is can I able to use a single form for all the worksheet and could it be done through binding?
re: Validating Textbox to work on a simple form.)
View 2 Replies View RelatedI have a form using in Excel 2003 that's 5 columns and 20 rows I need to populate the Textboxes with values from a worksheet. I want to use a loop statment that fills the first row, then increments to the next row until all 20 are filled. I have named each row the same name except the last character is the row number 1-20.
ie on the form textboxes named:
NameRow1 AddressRow1 CityRow1 StateRow1 ZipRow1
NameRow2 AddressRow2 CityRow2 StateRow2 ZipRow2
This is what I want to happen
Sub test()
Dim RowNumber As Integer
Dim FormRow As Integer
Dim NameRow As Object
Dim AddressRow As Object
Dim CityRow As Object
Dim StateRow As Object
Dim ZipRow As Object
RowNumber = 3 'Row in Data sheet
FormRow = 1 'Row on form
NameRowString = "NameRow" 'first part of the named object
Do While FormRow < 21
NameRowVar = NameRowString & FormRow................
I created a userform. Now, I want to make a sum of the textboxes in my userform and pop up a warning signal is the sum isn't 18. I tried it in different manners, but I always get some problems. I entered default values of 0 in my textboxes. When I edit the values by using the userform, the popup message will appear even though the sum of my textboxes is 18. Here is the code for the pop up warning message.
If (Me.txt1.Value + Me.txt2.Value + Me.txt3.Value + Me.txt4.Value + Me.txt5.Value + Me.txt6.Value + Me.txt7.Value _
+ Me.txt8.Value + Me.txt9.Value) <> 18 Then
MsgBox "Vous avez fait une erreur. Le total ne donne pas 18 trous."
Me.txt1.SetFocus
Exit Sub
End If
When opening up a userform I'm attemping to change the value of a range of textboxes ( 6 to 18) to 0.00.
To do so I used the following code which is controller by a command button
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 6 To 18
userform1.textbox(i).value = format(0,"#,##0.00)
Next i
userform1.show
End Sub
It keeps stalling at "textbox(i)"
A simple solution I'm sure.
Simple problem I'm
I have the following issue:
I have a table of data, and would like my userform to select parts on this depending on different variables.
When I run the macro "Show_UserFormCalculatePrice" or click the button "Calculate Price", the userform is activated which has 2 comboboxes, Date and Service.
When a certain date a service are selected I would like the the dish name to show in the labels of the userform.
My main issue is that there will be multiple dishes that will correspond to the data, and I would like them to be vertically listed in the labels depending on their number (Column A).
Essentially I would like to run some sort of If function:
If the date and the service correspond to the criteria then they are shown in the labels.
VBALabeling.xlsm
I have a userform I attached here with 3 combo boxes where a user can pick districts and schools, etc. When they click ok, the various tabs in this macro enabled workbook will "refresh" with the metrics for that entity)combination of picks from form) across the board. Each tab will have multiple pivot charts/tables so the filters will need to be addressed. I've been looking for code to kind of match this scenario. I've seen some that kind of in the ballpark, but due to the size and complexity, I suspect this will be extensive, right?
Parameter Selection.jpg
I have created a userform which searches from the data using the value that i put in text box.
E.g. if i put student i.d in textbox1 all other textbox show me the data like name contact detail etc.
But I want one more criteria. i want to add one more textbox to search for e.g either i put student i.d or locker no whereas right now i can only put student ID.
I Want To Use User Form to add data with multiple condition........
1st condition : select name, AHSAAN G, ALI G, SHAHID G.......
2nd condition : select , ONFLOOR BC, ON FLOOR VC, ON LINE VC
3rd condiotn : select, PT P2 P3 PB HR LK
In this use form the i used define name "name_1"
1 = I Added this to combobox 1. if if a aded a new name who is not in the list "name_1" then he asked for added this name or name. if i click yes then added the name in "name_1" list.
2 = When i added the data to my sheet by default all field of UserForm don't blank....
The use of this userform is to find a customer reference number. Im using two combobox's and a textbox.value that are populated from another workbook.
Though the way it is at the moment it opens the workbook and closes the workbook every time a new value is set to one of the combobox's.
I want to open the workbook on the useform initialize and do everthink the useform need from it. And then on the userform terminate close the workbook. Or somehink to this equlivent so this process of finding the customer referance number goes faster.
I have a userform
1. On my userform I've got 9 txt fields, 18 opt boxes and 3 buttons (please see attached form)
My problem is: If I intput a principal name, spouse name and child/ dependants I seem to work just fine.
However, if I input just a principal name and child/dependant instead of just placing one child/adult dependant on the sheet it places 2.
As a matter of fact, if no spouse is selected and child/dependant is entered then the last dependant is always repeated.
I have used the following code:
Private Sub CmdAdd_Click()
LR = Cells(Rows.Count, "A").End(xlUp).Row + 1
Range("A" & LR) = txtPrin
Range("I" & LR) = txtTotal
Range("A" & LR + 1) = txtSpouse
If opt1.Value = True Then
[Code] ......
I am trying to display multiple columns in my combobox on my userform.
I have it where it will find and load the data but when i select from the data only 1 column shows is there a way to have all 4 columns show up?
Dim lrowzz As Integer
lrowzz = (Sheets("graphs").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row) - 1 'new row to enter data into NEXT AVAIABLE ROW
Me.capac.List = Sheets("graphs").Range("B43:e" & lrowzz).Value 'populates the capa combo box on change capa tab
that is my code to populate the combobox using a dynamic range from B43 - D & Lastrow with data
Column b Column C Column D Column E
333 infoa dateA LocationA
334 infob dateb locationb
335 infoc datec locationc
when it loads the combo box i can see:
333 infoa datea locationa
But when I select 1 of the lines all that is displayed is Column B Data. How do i get it to still show all of it?
I am working with several userforms and try to transfer data obtained in one userform (lets call it Userform1) to another (Userform2).
Specifically, the idea is to have a commandboxA where the user can choose several options and the selection will define a string, and I want to use this string in Userform 2 to define a text.
Example:
The user chooses "solid" in the commandbox and I define the string as "rock"
Dim structure As String If commandboxA1.value = "solid" Then structure = "rock" etc...
And in Userform 2 I would like to combine the string structure with other strings, e.g.
If commandbox.value = "example" Then example text = "example text@ & structure & "text"
However this does not work, because the string which I have defined in Userform1 is not defined in Userform2. How would I define the string specifically, such that I have access to it in both userforms? How can I define the string as public? I tried several times, but could not get it to work.
I'm having a little bit of problem to accomplish something using a listbox , the trouble is that I want to display the rows of one column into multiple columns in the listbox.
Source = "List","C1:C300"
Products
1
2
3
4
5
6
7
8
9
The Listbox should look like this :
1
4
7
2
5
8
3
6
9
Not sure how to do that because I don't work with listbox too much.
'TextBox1.Text = Sheets("Shet1").Range("a1").Text'
However I have thirty text boxes on the Userform all linked to cells on a sheet. How do I apply this so that I dont have thirty lines of code. It just does not look elegant. I'm doing this because the number on the userform shows more decimal places than the cells format. Cell formated to 3 places Userform shows about 9 mostly .999999 etc
I've been trying to code this user form so that when the appropriate command button is pushed, the Inventory Number is populated the amount of times indicated by the "multiplier" number.
I haven't gotten very far successfully. Mostly runtime errors.
Here is a screen shot of my table, along with my non working code.
Private Sub cmdfront_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Scanned")
I've found a link on OzGrid "How to remove the (X) CloseButton from Userforms" but I can't seem to get it to work with Excel 2003. The code looks like it was written for Excel '95, '97 and 2000.
View 6 Replies View RelatedI have two worksheets (Sheet1 and Sheet2).
For example I have three columns named Name, City and Telephone.
UserForm1 has three textbox(TextBox1, TextBox2 and TextBox3).
All three textboxes data populated from sheet1 (Name, City and Telephone) by selecting a comboBox.
The code is below... and which is working fine.. The problem is in my next code. I am trying to amend data in all worksheets but it is not working.
Private Sub ComboBox1_Change()
Dim strNamedRange As String
Dim lRelativeRow As Long
With ComboBox1
If .ListIndex > -1 Then
strNamedRange = .RowSource
'ListIndex starts at zero