I have a userform running with a number of text boxes, as well as one listbox. To extract a value from a text box I obviously write something = me.textbox.value. How do I do the same for a listbox (single item) as me.listbox.value produces an error!
I have 2 different forms that I need info from one, added to the other.
The reason for this is to update pricing from a new file, into an older file with the same product code for each product.
on form 1(the one I want to keep), column x is price(that I want to update from form 2 column L), and column B is the product code(sku)
Now on form 2 Column L is the The customer price(this is the data I need moved over to column X on form 1. and column I is the UPC 10(sku) that needs to match the same sku(product code) on form 1.
Gee this sounds confusing aFTER i TYPED IT.. i HOPE THIS MAKES SENSE. i WILL ALSO ADD THE 2 FILES, SO YOU CAN SEE WEHAT I am talking about.
Please help as I have about 30,000 items total, and would take way too long to update prices manually every 2 - 3 months.
I am using this code to hide or unhide rows of text on another sheet:
VB: Sub ProcessSheet1ChangeOnCellJ7(ByVal Target As Range)
Dim sAddress As String Dim sValue As String
'Get the address of the cell that changed without '$' signs sAddress = Target.Address(False, False)
[Code]....
When the "Not Pursuing" list box option is selected (in cell "J7" or "J8" in Sheet 1) I need to add (or over-write) "Not Pursuing" to the range of cells in column "B" (in the "Tasks" sheet), but only for that particular Goal, meaning a limited range of cells in column "B". If the "Pursuing - Show All Tasks" option is selected for a Goal then these same cells need to be blank so that the appropriate person can enter their name into the cell.
The purpose for adding "Not Pursuing" automatically to these yellow highlighted cells is that it will facilitate filtering of tasks by individual in the "Tasks" sheet..
Again I have tried several times to upload a sample file and am unable to, which I know makes it more difficult to solve. (Is there some common mistake people make? I know it's an allowed format and is very small in file size....)
Code solution can be entered directly beneath:
VB: If Target.Value = "Not Pursuing" Then ActiveWorkbook.Sheets("Tasks").Rows("29:29").EntireRow.Hidden = False ActiveWorkbook.Sheets("Tasks").Rows("30:48").EntireRow.Hidden = True
I have many company-specific Excel files containing given data fields such as company name, company address, commodities supplied, etc. An example is attached here under the tab "Company Profile". I would like to extract all the information from the different "Company Profile" Excel files and put it into a more usable format, as shown in the attached tab "Results," where the company data runs horizontally across.
I tried to record a macro to do this ("CompanyProfile" -- included in the attached file), but I am not able to make it do what I want it to do. I also do not know how I may be able to capture the information in the "check boxes."
I have a workbook, see attached example, which has multiple columns. I want to extract the data for a certain criteria, in this example column E "product".
I then want to take all of the data in columns A to L for the chosen criteria e.g. product 1696 and place it in a new worksheet. I want to do this for every unique product. The example I have given only shows 2 products and limited rows, in reality I could have 50-60 products with hundreds of rows per product.
As per the example, I have a spread sheet comprising 4 pairs of columns headed Option and Grade (numbered 1 to 4). Col A is the Name of a person, cols B to I contain option (subject name) and grade data. Not every option and grade pair is used and the distribution is random.
In each used pair the grade is always one cell to the right of the subject. For each person name, I want to extract all of the grade data and place it into a separate table having separate columns for each subject i.e. who got which grade for the range of subjects.
By using the lookup function, I am able to identify where the subject and grade pairs are for each row. I have been unable then to move one cell to the right to extract the grade letter. I have thought of combining OFFSET with LOOKUP but can’t make it work.
I have a multi selection listbox that has 6 columns located on the "Form" worksheet. Trying to extract the data from the selected lines (and all columns for the selected line) and copy to another worksheet (ExtractedData). My code so far only works to extract the multiple selections for the first column. Not sure how to have it include all columns. Ideally would like to have the six columns to be extracted and placed in separate cells on the ExtractedData worksheet. Here is what I have so far:
Sheets("Form").Select SelCnt = 0 With Worksheets("Form").ListBox3 For i = 0 To .ListCount - 1 If .Selected(i) Then SelCnt = SelCnt + 1
i have a form control listbox (list box 5), it is multi select, i need to create a for next statement that loops through the list in and tells me which "row numbers" as it were are selected. i.e if the 1st and 3rd ones are blue, it returns 1,3 in a cell? (lets say cell A1).
I'm writing a audit trail that when the user changes a cell in a specified column the reason for the change gets recorded in a different sheet. If however the list box is cancelled then the cell should not change.
The code should do the following:call listbox when cell value change user selects one or more reasons from list if nothing selected then prompt for selection record username, date, cell value and reasons if click cancel then undo change, i.e. don't allow user to change the cell without selecting a reason Steps 1-4 works well Step5: cancel undo the cell change, but doesn't unlaod the form and hence the load-unload goes into a loop.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 15 Then Call Launch(Target) End If End Sub Module
Global reasons As String Sub Launch(tRange As Range) Dim prodId As String...............
My problem is I cannot copy from a Form Control drop down box, and I need to do this for ~10 drop down boxes in about 200 xls files. The files follow a template so the drop down button Inputs are uniform. Here is some more detail:
I’m building an Access Database so that our data (currently in many, many Excel Spreadsheets) can be efficiently queried. The old system was that when asset data was collected, the data would be entered into an Excel spreadsheet, using a Template. So for example:
Project A1234
Name Main Street Pipe High Street Pipe
Ref No. 12345 12346
Installation date 22/08/13 19/07/12
X Coordinate 55667 99212
Y Coordinate 77889 12364
We have hundreds of these files, but I managed to get all the files in one folder and Paste and Transpose the data from the relevant Cell Ranges in each file (using a VB sub) into ONE summary sheet. Success; or so I thought.
Unfortunately for one generation of the template (people changed them slightly every year), the template had people enter information into Drop Down Menus. Not a problem when they’re associated with a cell, but these were free floating Form Controls.. so you can’t actually click and copy from them, or call them in VB as you would a specific cell.. afaik.
So my issue is how can I extract the data from those Form Buttons? I’ll try and provide as much info as I can:
Firstly I tried to find some sort of identifier for each Form Button. The dropdowns are called Combo Boxes, (Developer tab > Insert > Combo Box (Form Control) ), and when you select them (by right clicking) and hit the View Code button in Developer Tab > Controls the following shows up in VB.
Sub DropDown44_Change()
End Sub
I’m guessing that the number is related to the button so that’s one useful thing, an identifier of sorts. There’s no actual code there though really from what I can see.. My problem is I have no idea how to extract from DropDown44!
The range of values in the drop down comes from a separate sheet where there’s just a list of the values. There aren’t any cells linked to the drop downs though. If I enter a cell in (Right Click) Format Control > Cell link: then it prints the number (e.g. 4) of the value in the range. So if the drop down options are “Monday”, “Tuesday”, “Wednesday”, “Thursday” and “Thursday” is selected, the linked cell says: “4”.
They didn’t link a cell, then I could call that cell in a VB sub and the job would be done. Unfortunately they didn’t, so I tried Recording a Macro and selecting the drop down form control.. That didn’t really work, except if I right clicked it, I got some more info from the macro VB:
ActiveSheet.Shapes.Range(Array("Drop Down 19")).Select
So is my drop down an Array? My understanding of an Array is that it’s a list of arguments.. all I get there is the name of the button. I am not experienced in VB so this is as far as I’ve got. Perhaps I can get a sub to select the button using the above line, but I need the info from it, i.e. which value is currently selected in the Drop Down.
(Using Excel 2010 but the .xls files are from ~2005)
I have a spreadsheet with names of students, year groups, subjects and others. My VBA code will analyse student's results, but before I get there I would like the user to be able to select groups of students using listboxes.
Now I have a tonne of variables that I won't bore you with but the main thing I would like to do is to scan through each cell in a range on my spreadsheet and determine if the value of that cell is equal to a selected option in the listbox. This will let me, for example, filter by only Year 10 students, or select to display only Year 9 and 11 students.
I already have the code to scan through each cell:
VB: 'Run through each student and check they match the criteria For N = 1 To StudentList.ListCount
'Split the first and second names StudentName = Split(StudentList.List(N - 1))
[Code] .....
Essentially, I would like to take the cell "A" & N2 and check to see if it matches one of the selected options in a listbox called "YearList"
I have 1 macro that i would like to be activated as soon as i select any item from a form control listbox (doesn't matter which item). i am not using an active X control but rather a form control.
I have a (MultiSelect) ListBox1 that is populated with Customer Names for the user to select from. I want the user to be able to hit the CommandButton1 adjacent to the ListBox1, and the selected Customers copy into/get added to the ListBox2.
I have the following code, adapted from other code, but it is not working:
I have a form control listbox, which is populated with filenames from a specific directory. When the user selects an entry I need that text to appear in a cell in the workbook. This is then concatenated with a folder path to open the file to copy and paste some data out into another workbook. I have tried...
Code: Sub GetWrbkbkname() Dim strlist As String strlist = Sheet1.Listbox18.Text Sheet1.Cells(1, 1) = strlist End Sub
But receive the method or data member not found error. The cell link property just returns the position in the list! I need the text!!
The only workound I could think of was populating a space in the SS with the directory contents and using the cell link value in a choose function to return the selected workbook name.
I have a listbox on a userform, with multiselect set to 2 (Multiselect extended). When the listbox is displayed for the first time, no elements are selected. At a certain point in this application, I want to get back to the original state and deselect all items.
I do that with the statement Listbox1.listindex=-1. I hope that is the right thing to do. However, the elements that originally were selected are still blue-coloured, like they became when the user selected them. How do I do to make them look deselected?
It also seems to me that the array Listbox1.selected(x) still holds the value "true" for elements that were selected. Is it so that in addition to say listbox1.listindex=-1, you have to loop through the elements in listbox1 and set all of them to false?
i am making a phone company site on excel, with vba, for my college project, i need to know how to make it so wen i change the selected phone from the listbox, 2 show the image of the phone in the image box, from my files.
I have a workbook with roughly 25 sheets, each sheet represents a customer. Each month, I want to be able to run a macro in the workbook that will produce a UserForm containing a Listbox of each unhidden customer (worksheet) in the workbook. After I select all of some of the customers, hit a "process" button which will run a macro on each of the selected customers from the UserForm one worksheet at a time.
I currently have code written to produce the UserForm and populate the list, but I am uncertain how to write the code for the "process" button to run the macro on each selected customers one at a time. All I know how to do is have excel select all the chosen customer worksheets all at once.
I'm playing with simple UserForms to get the hang of VBA. I was trying an example for the help files (Using xl2K), and this isn't working. My first challenge was figuring out that I needed to 'create' a UserForm to begin with.
I created a nice list box where the user can select any members of a ListBox1, and put them into a ListBox2. This happens in a Form I created, UserForm1.
Now I can't figure out how to get this ListBox2.list from Userform1 into my code in Module1! Any reference to ListBox2 in Module1 results in an error like "Run-time error '424': Object required.
I have a listbox control on a User Form. The properties are set as follows: MultiSelect: 1-fmMultiSelectMulti; ListStyle: 1-fmListStyleOption. With these properties the user selects multiple items from the listbox by clicking checkboxes that appear to the left of each option. Once items are selected the user clicks a command button on the User Form and the selected items are placed in a single cell on an excel worksheet. The excel worksheet contains an excel list of records. The records on the worksheet can be edited or added.
Let’s focus only on the MultiSelect listbox. A single item is selected from the listbox and is applied to cell G2 as CRUSHING. On the next record two options were selected. These items were added to cell G3 as CRUSHING; SHEAR. The next record had three items added to cell G4 as SHEAR; LATERAL BENDING; FLEXION. As you can see from the above example multiple items are added with the item name followed by a semicolon space and then the next item name. The user form contains command Buttons that allow the user to move to the NEXT, PREV, FIRST, LAST, ADD, and EDIT records.
Here is my problem: I can check multiple items and have them added to a single cell of the current record on the worksheet. My problem is how to reverse this process. I need to move back to a previous record and have the User Form appear with the check boxes of the currently selected record.
I have created a user form with a multiselect listbox. The user form displays a checkbox to the left of each ListBox item that can be selected. Once selected the user clicks the SAVE button on the user form and the results are stored in a single cell on an excel workbook. The user form contains several other buttons that allow the user to view the NEXT and PREV records stored on the excel worksheet. If a checkmark is placed next to the option Shear and the Save button clicked, the word Shear would be recorded in the 7th column, current row of the worksheet. If the user checks several boxes like: Flexion and Lateral Bending, the 7th column of that row would store Flexion; Lateral Bending. The macro inserts a semicolon space between multiple selected items.
When the user clicks the PREV or NEXT button on the user form to go an existing record I am having difficulty getting the correct checkboxes to be selected to reflect the contents of the 7th column, current row. The ListBox control is named GeneralInjuryMechanisms. The code that I currently have for this section of the macro is as follows:
Dim strInput As String, strOutput As String Dim varZz As Varient, i As Integer GeneralInjuryMechanisms.Clear 'Clear the existing ListBox options AddRegionalMechanisms 'Recreate ListBox options based on current record in column 7 strInput = Cells(r, 7).Value ' i.e. cell on worksheet with Flexion; Lateral Bending varZz = Split(strInput, "; ") 'create array of values using "; " as delimiter. For i = LBound(varZz) To UBound(varZz) ' loop through values...................