I am currently setting up a userform where one of the options is for an error code (chosen from a listbox) but the user has to be able to select multiple codes. I have the below working if it is NOT multi select, works a dream and goes in the right column.
VB: If ListBox2.Text = "A1" Then LastRow.Offset(1, 20).Value = "x" ElseIf ListBox2.Text = "A2" Then LastRow.Offset(1, 21).Value = "x"
But as soon as I set it to mutliselect and choose say A1 and A2 neither one writes, I imagine because Listbox2.text is now A1,A2 and not just one or the other.
I have a multiselect listbox in a worksheet that the user can select from. When the file is saved, closed and reopened, the user selections disappear. Is there a way of reloading the previous selections when the file is reopened? I have used the listbox from the control toolbox and have Excel 2003. My VB experience is very limited!!
I created a userform for budgets. Currently the way that the user selects the year for a particular line item is a combobox. The combobox is filled from a textbox, where the user inputs the project duration. For example if the user put five years into the textbox, the combobox would have years 1,2,3,4,5, and a default of all years. I want to change the combobox to a multi-selection List Box. I changed the sub that loads the current combobox to this:
Public Sub ComboLoad(cboExpense As ComboBox, cboJob As ComboBox, _ ltAp As MSForms. ListBox) Dim i As Integer ltAp.Clear If Len(UserForm2.txtYears) = 0 Or Len(UserForm2.txtYears) = "" Then ltAp.AddItem ("All Years") Else For i = 1 To UserForm2.txtYears ltAp.AddItem i Next i ltAp.AddItem ("All Years") End If ltAp.Text = "All Years" 'ltAp.value = "All Years"
I used to be able to select a value for the combobox, (the default of all years), but I get an error if I include that part of the code now. I wanted to know how I can make this selection by code. Also, the bigger question for me is how do I deal with multiple selections that may or may not be sequential. As an example, for the travel section, there may be a particular expense that will occur in yrs. 1,3,5. I found some info about referring to the position in the array, but it seems like this will constantly change. I could imagine doing case scenarios, but it seems like there would be too many potential possibilities to cover.
I have a database that is setup and I want to add a ListBox to the userform and I know how to do that and add all the listbox entries.. my trouble is how do i save the selected entries(multiselect) to sheet and load them to the form (what was selected) using what i have below?
Private Sub cmdSubmit_Click() If Me.lstProcess.Value = -1 Then MsgBox "Please Select SPA Process", vbExclamation, "SPA Process" Exit Sub End If ActiveWorkbook.Sheets("SPA Error Tracking").Activate Range("B4").Select Dim i As Integer For i = 0 To lstProcess.List(i) Do If IsEmpty(ActiveCell) = False Then ActiveCell.Offset(1, 0).Select End If
Loop Until IsEmpty(ActiveCell) = True
With ActiveCell .Value = txtLoanNumber.Value .Offset(0, 1) = txtProsup.Value .Offset(0, 2) = txtIssue.Value .Offset(0, 3) = lstProcess.Value End With Next i End Sub
1. What property would I use for the message box at the beginning, if the user has not made a selection?
2. I have the listbox set as multiselect. How can I update this code to take each selection and create a new row on the Error Tracking Sheet?
If the user selects multiple selections from the list box. I will need to create a separate row of data for each selection.
I have this workbook with 22 sheets and 21 are hidden. On the one open sheet there is a button that opens a userform with a listbox. I have radio buttons on the side to control whether the list box allows single selection, multiple selection, and extended selection. I want to change extended to open all sheets.
Anyway, I have the list box populated but I can't figure out how to code opening single sheets, multiple sheets, or all sheets depending on the radio button selected when the OK button is pressed. I know the listbox depends on the selected property but I am stuck. Here is the code I had but it is a mess. I am still new to VBA.
Private Sub OKButton_Click() Dim Msg As String Dim i As Integer Dim UserSheet As Object If ListBox1.ListIndex = -1 Then Msg = "Please select a sheet." Else Msg = "" For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then For Each i In ListBox1..........................
Private Sub ComboBox1_Change() 'was A, now N DataReport.ComboBox2.Clear If Data5m.FilterMode = True Then: Data5m.ShowAllData Data5m.Range("A1").AutoFilter field:=14, Criteria1:="=" & DataReport.ComboBox1.Value Call FillCombobox(Data5m.Range("X2", Data5m.Cells(Rows.Count, "X").End(xlUp)).SpecialCells(xlCellTypeVisible), DataReport.ComboBox2)
I have a listbox with 8 columns. Multiselect is enabled, and it must stay this way. As part of my program, after the user presses a command button, I need to use the row indexes of the selected rows in order to copy the selected information into an array which is then placed in a different listbox, and then delete the items from the original list. Pseudocode of what I want to do:
But my understanding is that .ListIndex does not work this way with multiselect listboxes. I've tried searching for a solution for a while, but I cannot find one.
I have a Listbox (Listbox2) in column C. The listbox allows users to select multiple items (in this case it is countries). So the user could select 1 or 20 countries based on the previous criteria.
What I would ideally like is for the next column (column D) to automatically list the selected items without having to use a command button in the actualy cell. However, I could put a command button at the end to say "Confirm" which would then transfer the above into the relevant cells.
This is an excel file, and each row would works the same. Basically users are entering products for set up row by row, so the file could be 10 rows or 200.
Just to be clear, it would look a little like this:
Drop Down Listbox Column C Column D
Canada (Selected) Canada, USA South Africa USA (Selected)
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
How can I take the main data sheet and have the information transfer to another sheet? It will be transferring to a "condensed" version with limited columns and when I open the condensed version a like pops open. Then asking if I would like to update this workbook that is contains links to other data sources.
I have a multiselect listbox with values that gets populated from a sql statement, and I would like to get is the first or second index from the selected item. I know how to get the listindex from a combobox by using:
VB: cbnumber.List(.ListIndex, 0)
How can I loop through and get the 1st index number for the selected items only from the listbox? I want to pass this index number to another sql statement.
I have a MultiPage userform and I'm adding (4) control buttons - CancelButton, BackButton, ForwardButton and FinishButton. On the first page, those names are fine but when I get to subsequent pages, I get an ambiguous error if I try to name the controls the same. But the code will all be the same. What am I missing? In an example that I have, the user was able to name all the controls with the same name. What setting would control that?
I've got a userform with multiple pages, and in my userform initialize sub I set the focus to "combobox1" on "page1". When a user is on page2 of the form and clicks my "ClearData" button, which calls the initialize event, I get a run time error 2110 - "Can't move focus... etc" I would like users to have the ability to clear the form and start over no matter what page they are on.
i'm trying to build an app that'll take a user through 5 or 6 steps of a process, with maybe 2-3 substeps in some steps. right now i'm currently using a multipage Userform , but all the tabs make the whole thing look cluttered (even when there's a "Next" button in plain sight). this is especially because i've put each substep as a multipage form under that step's page (multipage forms inside a multipage form). so steps 1-5 would each have their own pages (1-5), then in page 1 you'd have another multipage form (1.a. - 1.c.). is there a way to make it look simpler? i'd like it to look a bit like a Wizard (ie remove all the tabs), but the only way i can think of is to throw a whole heap of controls on one page, and turn them visible/invisible each step of the way.
Is there a way (with a macro?) to select all rows within a certain range (e.g. from row 3 to the end of the sheet) SEPARATELY, just as selecting them manually with ctrl+select?
Like in my example sheet; I would use the AutoFilter on row 2 to show only the items with prices equal to 30. Now I want to select the entire rows (name, amount & price) of these two items, so that when I turn of the AutoFilter the two rows would still remain selected.
I have a spreadsheet that contains multiple rows per user. I need a combo or list box that pops up asking them to select their name from the drop down list. The list would be based on column A and would only include their name once.
When they select their name, the macro would then open the Form option from the Data menu, the Criteria button would be pushed and their name entered into the form, to return the first record their name appears on, then they could forward through the records, and update using the Next record button.
I have a userform that has a multi page on it with 4 pages. I notice that there is no way to have the individual pages be set to a click event- or none that I see anyways. What I am wanting is for a series of events to happen based on what page the user chooses from the four (like a userform initialize type event).
Have very recently been upgraded to Windows 7 with Excel 2010 at work. On printing out a 10 page doucment, (all of which are landscape format), when vewing print preview, the first page is previewed as landsacpe, but subsequent pages are portrait.
If you change format of 2nd page to landscape all subsequent pages switch to landscape.
Have looked at a similar format document created last month and it behaves exactly the same. Whole document landscape but on print preview only first page is...
I have a report that I use and right now I have a command button that prints the report x2. What I would like to do is to have it print one in color and one in grayscale. I could do this I think with two different buttons, but I would like to utilize just one. I tried creating a macro but it did not pick up the fact that I changed the properties to black and white.
What I am wanting to do is to transfer Names(Row B7:B160) to a different work sheet IF the Row next to it(C7:C160) is filled out with a time. I will be setting up a command button that once say 10 names have times next to it, this data then will transfer to another work sheet.
I have done below coding, however it will only transfer data in B7 and C7, if I try to add B7:B160 it comes back as Missmatch. Below is what I have done for the Command button.
Private Sub CommandButton1_Click() Dim AdviserName As String, Time As Integer Worksheets("Sheet1").Select
I have a spreadsheet that has 5 columns. The first row is the Header row, the second row is for the data input, here are the columns:
Column 1: Company Name, I have a drop down list associated with this column.
Column 2: Sales Person, I have a VLookup function to check for the company name in Column 1 and fill in with correct Sales Person.
Column 3: Total Sale, Manual input.
Column 4: Commission %, I have a VLookup function to check Company Name and fill in the correct Commission.
Column 5: Commission, Basic function of Total Sale * Commission %.
I have a macro created that when run it will take all the information from row 2 and move it to row 3 and at the same time inserting a blank row 2 with the functions for me to fill out new information.
The problem that I am having are 2 things:
1: When running the macro the functions will get applied to the newly inserted row but the drop down list for the Company column doesn't.
2: I would like to be able to start typing in the company name i.e "F" and have it jump to the F's in the drop down list.
I'm trying to make two multi select listboxes in excel. I have tried I myself, but I know the excistence of VBA only since one week .
In sheet1 I have a number i.e. 50 in "A1" . First I want to make a list of this number, so cell "A2" = 1, "A3" = 2, .... "A51" = 50. This range has to be variable since the number can be 1 but als 100.
Then I want to populate ListBox1 in sheet2 with the list from sheet1. Next I want a second ListBox (ListBox2) and two buttons ("Add item" and "remove items") to move items from ListBox1 to ListBox2 and back.
Finally i want the selection that is made in ListBox2 to be put in sheet1 in a specific column (let's say C) where "C1" is the first selected item from ListBox2 "C2" the second and so on. This range has to be variabel since the number of selected items is not known.
I have a mulit-extended listbox, a textbox and a button on a form.
I have populated the listbox with a list of files from a directory no problems.
First Part (Single Selection):
When I click on one/single filename in the list I want:
1. The textbox to be populated with the name I have selected
2. When I click the button (With the single filename selected, I want to call a function passing the filename I have selected.
The function could contain a msgbox(selecteditemname) for now.
Second Part (Multi Selection):
When I multi select filenames from the list I want:
1. The textbox to be populated with "Multiple Files Selected"
2. When I click the same button as before (With multiple filenames selected, I want to call a different function and pass each filename individually in may be a for loop)
The function could contain the loop and with each filename in the loop msgbox(selecteditemname)
I have tried the above and noticed that the listbox1.value property for multi listboxes dont seem to work and I am not really sure how to distinguish between one selection or multiselection to get a button to pass off to two separate functions.