I have a userform that I use to enter fault calls and it saves in to a spreadsheet.
I want to develop the capability to be able to have a form that Will search a pre-existing call and then when it finds it to bring up the main userform and populate it with existing details so that the user can amend them if reqd and save back to the database.
So what i want.
Userform - New Call
Userform - search existing call
I want to open 'search existing call' userform, be able to search based on one of the following: callrefnum, fault_type, Call_logged_by
Once the call is found - it should be displayed and then on double click it shd open up in the main userform 'New Call' with all existing details populated.
I am trying to populate a UserForm with data from a spreadsheet using a search function instead of just providing a Next and Previous search function (which works). The following code is able to search for and select the correct row on which the data resides.
Private Sub cmdBlankFind_Click()
Dim FindMe As Variant, FindCell As Range, FindCell2 As Variant, Data As Variant With Range("BLANK") FindMe = InputBox(Prompt:="Please enter search criteria:") Set FindCell = .Cells.Find(What:=FindMe, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False) FindCell.EntireRow.Select Data = FindCell.Value tbxBlankAccount.Value = Data(1, 1) End With End Sub
how can I build a userform to display all values from a row? in order to select a row, i was thinking to use a combobox to display values from one column and based on that selection, display all values in that row? the reason i want to use a userform is because i would also like to be able to edit that data.
I am looking to modify my combobox from a userform to Filter the list based on the first entry on what the user will add.
I have a code that will search for all entries in my "Control" sheet and passed this on to my combobox:
I have, within a module, the following function code that the user find the entry by adding the first 3 letters of the search they need:
I would like to know what to change in the function to filter the list, once the user adds a first letter and then press the dropdown from the combobox, to filter the list based on all entries from the first letter to only show entries with that letter.
If A is entered, then, show only the entries strating with the starting letter A, but at the same time if the user adds more letter to filter to the first then second letter:
If AB is inserted, then, show entries with AB only.
Where do I add this code also, is this another function or this could be inserted within my function?
I have a spreadsheet that is updated weekly -- but every week new info is added that needs a user to input corresponding info. I use a vlookup function to link to another spreadsheet that populates the info from previous weeks and the info that is missing shows up as #N/A...
First I was using a msgbox function to get the info:
For Each b In myrange If Application.IsNA(b.Value) Then Employee = b.Offset(0, -2).Value SSID = InputBox("Please enter ID# for " & Employee & " :", "New Employee Found") b.Value = SSID End If Next b
But it can be up to 30 different new employees... and that is time consuming.
I would like to make it more user friendly by creating ONE userform that displays all of the employees as labels -- has a text box in which to put the ID # -- and then has a drop down box to choose the type of employee (2 options). I want all of that info to go back to the reference spreadsheet so it will be saved for following weeks, and then redo the vlookup to get the info into the new weekly spreadsheet (I can do that part)....
Private Sub CloseButton_Click() Unload UserForm1 End Sub
I run a web query to populate a table in my spreadsheet. The data is dynamic - and on some days, I will get a couple of extra rows in the table (its weather data, so e.g. when its raining, they will forecast an extra row of how many mm, etc...)
To give a simple example, right now I use Hlookup to locate the value of F3 (the date) in my dynamic range of B26:G26 and step down 3 rows, where my needed temperature values are for that corresponding day. This works great like this already: =HLOOKUP(F3,B26:G29,3,FALSE)
The big issue is...what happens if my target values are not always 3 rows down? If the query refreshes with any extra rows, this reference is shifted. (Well, my starting "Anchor" is shifted)
I have an Access table which has following fields:
ScanDate Number DataType Type Number Type1 Number Type2 Number BatchNo Number Cases Number Pages Number
Now I have a useform in Excel so that when the user selects the Date from the combobox then it should check for total batch numbers (Count(BatchNo)), total cases (Sum(Cases)),Total Pages(Sum(Pages)) where ScanDate= Date from the combobox group by Queue Number. The Queue Number consist of Type+Type1+Type2.
See attached the Excelsheet where the data should be populated to. WBCount.xls
On the attached spreadsheet, I have a command button on the search results spreadsheet that opens a userform to show the individual records with populated data.
This is working fine. The problem is when I use the 'drill down' button beforehand.
As an example, I search for the language "Italian". I then drill down to find "Females". When I click the command button and click Find, I only want the 3 records for the females, not the 7 that match the original search.
I know where in the macro changes are required, I just don't know what to change it to.
I am setting up a spreadsheet with two columns. The first column will contain a persons name the second column will contain four numbers.
Name Numbers Joe 1,3,12,24 John 4,12,23,24 Jill 6,14,19,26
I need to be able to search to find the following: the correct sequence of numbers e.g. if 1,3,12,24 were pulled out then that search is easy. If I was looking for someone who had the numbers 1,12,24 then I have a problem. I was thinking about putting the four numbers in to four separate columns but my Excel knowledge is poor.
I have a few subs that use userforms. They all work ok except that when they are filled out and the final click to close them is done , e.g. command button "OK" or "Cancel", the button is slow to respond. I usually end up having to click twice, or click and hold for a moment before it will register.
It appears to me that the program is hanging around in the last highlighted box the cursor was in and its slow to notice a command button has been pushed.
See attached for explanation of what I need. I basically need a user form to appear asking for an specific time and services provided and transfer this data into another sheet. In sheet 1 there will be several time codes in pink for each service provided.
I want it to populate a combobox in a userform. Should it go in the code segment for the userform, in a module, or some other place? The following is code I originally found (by Leith Ross of this board) to find the last row in column "A", and load the combo box "ComboBox1"
Userform1 is a basic search and find using the text the user enters in a text box, followed by 'ok' commandbutton.
If a matching cell is found in the worksheet, the row is selected and the second userform asks for text via textbox2. This text will be placed in the end column of that row (column L) that was found to have the text input in Userform 1.
What's important is that if on that row some text already exists in column L, that this appears in textbox2 allowing the user to modify it.
I am searching a database for a particular date and want the data corresponding to that date to be populated into a userform. So in short I want the data to be displayed in the userform. I am looking for ideas on how to do this efficiently. I currently do it with a list box, but it is only able to display one column of information. I hope this is clear.
When I put order number into "txtOrder" it finds that order and populates the labels in userform. But the problem is, it populates only first row with that order number. How to show all other rows with the same order number in userform labels?
For example : i want to find all rows with that order number and populate them into labels like that:
I am trying to populate (via VBA) a textbox/combo box from one user form to another user form.
The first user form has a room number in a text box1. If certain conditions exists, a button is selected to bring up another user form (both forms are modeless).
I want to pass/populate some of the 1st user Form info into the other user form.
I have tried the on initialize textbox1.value = textbox other.value but no dice. I can populate a user form text box from a spreadsheet but from box to box in separate user forms has me a little stumped.
I have a userform that pops up upon opening a file. The user form has 5 text boxes names Zero, Two, Four, Seven and Nine. I would like each of these text boxes to automatically populate with the values last used. The values last used are stored in Worksheet "Index Settings" in Cells "C3:C7".
I would like to populate the captions of checkboxes in a userform with the items listed in a drop down menu located in cell A1. Lets just say I don't know exactly how many items in the dropdown there will be, but I do have an estimate number. Maybe between 20 and 25.
What I am trying to achieve is to get the UserForm to populate from information in the Database. In column AD I have a formula which produces a number when an item becomes due. I would then like label1 (lblReg1) to populate data from the same row in column A and label2 (lblDate1) from column S.
I then have a CheckBox (chk1) next to each pair of labels for the user to confirm the task has been actioned and when the CommandButton is clicked I would like the result placed in column AE in the corresponding row.
I have tried utilising code from another userform I have but I cant get it to work and I believe this is to do with the 'ActiveCell' reference as there is no Activecell (you can probably guess I am new to this). Example:
Sub UserForm_Initialize() If Sheets("Database").Range("AD3:AD5000").Text = 1 Then lblReg1.Caption = ActiveCell.Offset(0, -29).Text lblDate1.Caption = ActiveCell.Offset(0, -11).Text Me.chk1.Visible = True End If End Sub
(All the Labels are blank and will be filled hopefully by code, all the CheckBoxes are set to Visable = False at Initialize stage, I will be using Me.Height = ?? to expand the form to visible check boxes)
I have attached a small selection of my workbook where I have set up the userform and named the labels.
Can anyone amend the code to achieve the desired result or alternatively put me straight on the correct way to do this.
I've found a great userform on this site that allows you to populate a datasheet as well as delete or amend datasheets. It was by dodger7 within Database. Very useful. I've adapted this to my needs and it works great apart from i cant amend the userform that shows data when you select delete or amend. I've had a go but don't understand how i can create my own feilds and set it up in order. When i go in to the code i can veiw the delete and create/amend userforms but this is a search function relating to a reference number. Once you select Find it brings up another form and that is the one which i need to adapt to show my new feilds. I have attached the sheet so you can see my problem. I was wondering if anyone can advise as i love this userform/database method but can't complete the changes to my needs.
I've created a userform to populate rows in a worksheet. The userform gets details of flights with inbound and outbound dates. I'd like a calendar to popup so the user can just select a date with the click of the mouse which then resides in the textbox until sent to the sheet. I know how to get the calendar to pop up when entering directly into the sheet but I don't want the user to have to touch the sheet unless making amendments.
Worksheet1 has data, with a cmdButton that opens a UserForm. When the UserForm opens, some txtFields(in the UserForm) are populated based on the data from Worksheet1. The issue is, if we change the data on the worksheet1, we have to open and close and open the UserForm to have the txtFields populated.
I have this UserForm I need to clean-up but can't figure proper ways of doing it.
There's 2 ways to call the Form: 1) The main Sheet has a Command Button that calls the blank Form, which allows the user to enter & select data to be submitted to the sheet (using combo boxes, etc.).
2) If the user wishes to modify an existing entry on the sheet, he must click on it. This will call the Form which will be populated with the existing data on the sheet (per Row, since the Form enters data one Row at a time).
My problem is that I can't figure a proper way to Initialize my Form to either be blank (as for option #1), ie. have no pre-entered or pre-selected data in it, or to be filled with pre-existing data from the sheet (#2).
I tried to handle this by setting my ActiveCell = A1 when my CommandButton is pressed and check it when Initializing the Form (to initialize for #1 instead of #2), but that's totally not working.
Some Background info: This is my first post! I am a total novice when it comes to VBA in Excel (but I'm a fast learner!), so please bear with me if my question is either obvious or easy (or if this is a question that's been asked 14980213 times already). I have some programming experience, but all in C or C++, not in VBA--this makes the project challenging. I also have to hand this off in a few months and trust that it'll never break, ever--more challenging.
I'm trying to make a Participant Tracking System for some workshops we offer. The intent is to make a userform so that an administrator can input all the information for the participant in question. One important question on the form is which course the participant intends to take; the snag is that the current list may change over time.
The Spreadsheet is set up with Course headings starting at R8C8, and continuing across for all 16 courses we currently offer. The data for the participant is entered into Rows 1-7, and the date they completed the course in the appropriate column for that course. There are some formulas in Rows 1-7, the important one here counts up the number of classes currently offered.
So, below is the code i'm trying to use, at least to start. I am making a combobox that has all of the available classes.
Private Sub UserForm_Initialize()
Dim ClassList() As String
'R5C6 contains a formula that calculates the number of classes offered. The value is currently 16 Redim ClassList(R5C6)
iCount = 0 y = 8
Do While iCount > R5C6 'R8C8 is where the class list begins. 'It continues horizontally along the rows for the 16 titles offered. Range(R8Cy).Select ClassList(iCount) = ActiveCell y = y + 1 iCount = iCount + 1 Loop
With ClassListBox .Clear .List = ClassList .ListIndex = -1 End With
I used to have a line that replaced the following chunk.
Range(R8Cy).Select ClassList(iCount) = ActiveCell
ClassList(iCount) = R8Cy
and did nothing for me at all.
When I initialize the userform, I get a blank combobox. It doesn't do what I want it to do, but that's probably because I'm telling it to do something weird.
I have a userform to be populated with data from a dynamic table for purposes of showing users their daily stats. The data is populated on the worksheet in the following way- ..............
When the userform is pulled up, it needs to show the following details -
UserName - User1 Workitem 2 : 12 Workitem 3 : 7
As the work items go all the way to 65, I wanted to only show the work items that had actually been worked on by each person - What I am struggling with is how to populate the textboxes on the userform with this data - without getting into an absolute mess of if statements -
If Range(WorkItem1Range).Value <> "" Then userformStats.WorkItemA= Range("a2").Value..........