Sequentially Auto-Number Records Added Via UserForm
Jun 3, 2008
Is it possible to autonumber records created with data entered with a user form?
If it is possible - I would also like to know how I could display the current record number on the data entry form....
I am having difficulty getting a script to work that manages duplicates being added to a worksheet from a userform. Each record is assigned a unique ID when it is added to the worksheet initially. The problem that I am having is that the user wants to add non-unique information to the worksheet in unique records periodically. I can do that, but I am looking to make the application more user-friendly by reducing the number of msgboxes he has to respond to in order to do this. I have some code below which works, but it needs to be smarter.
Private Sub UpdateContact() Dim strAnswer As String 'Copy values from Customer Form controls to Data array tbxWrkTel.Text = Format(tbxWrkTel, "000 000 0000") tbxMobile.Text = Format(tbxMobile, "000 000 0000") tbxHomeTel.Text = Format(tbxHomeTel, "000 000 0000") If Not WorksheetFunction.CountIf(Sheet1.Columns(1), tbxCompany) > 0 Or _ Not WorksheetFunction.CountIf(Sheet1.Columns(2), tbxContact) > 0 Then 'To avoid duplicate data If tbxCompany = "" Then tbxCompany = "-".........................
I have built a complex vba & multisheet spreadsheet that I am looking to secure against all the common attacks. So I have:A Workbook Open pw; VBA password (29 symbols/numbers/Caps/lower case) Very Hidden worksheets Hidden rows/columns Restricted scroll areas Workbook protection Code that auto protects all sheets upon opening Registry referencing in Workbook Open with timed closure if not matched Now I am on the last leg of implementing protection against Application.EnableEvents = False; force enabling of Macros and hiding of toolbars, scrollbars etc... Phew.
Soooo, in my research, I have learnt that if EnableEvents = False, Workbook_Open is essentially skipped and the security VBA routines are disabled. To get around, I have copied the entire contents of the Workbook_Open routine to a module under Auto_Open. The first line of both these scripts is: Application.EnableEvents = True.
Works! So far so good. However, I have a Msgbox prompt in the scripts that displays twice. So in essence, Excel is running Workbook Open first, then Auto Open second. If I open another instance of Excel and run Application.EnableEvents = False first before opening my spreadsheet, I only get one message. So only the Auto Open script runs.
I copy a table from a data dump dbf file into worksheet 1. I enter a separate column titled "Comments" and use this for status purposes. My problem is that when I refresh the worksheet, my comments don't stay attached to the rows/ records that they were originally entered for.
I have a column of week numbers but some gaps in the list (e.g. the job is complete and so I do not want to reference it) I am trying to create a list of jobs by week number. I need to sequentially number jobs to then use Vlookup e.g. job1-week1 job2-week1 etc to display be week.
I can work out to number the list ignoring the blanks but then resetting to 1 with each new week?
I have a user form that has a label "txtcompno" which displays a "Auto incrementing" number everytime the user form is opened. e.g. 90001, 90002, 90003 and so on. This was working fine till yesterday, but has since stopped working for some reason: This is the code I wassuccessfully using before:
Private Sub UserForm_Activate() Me.txtdate.Caption = Format(Now(), "dd/mm/yyyy") Me.txtcompno.Enabled = True Dim iRow As Long Dim ws As Worksheet Set ws = Worksheets("ComplaintData") ' find last data row from database iRow = ws. Cells(Rows.Count, 1) _ .End(xlUp).Row If ws.[A2].Value = "" Then Me.txtcompno.Caption = 90001 Else Me.txtcompno.Caption = ws.Cells(iRow, 1).Value + 1 End If End Sub
but now its giving me error - "Run time error 13 : Type mis-match". and its highlighting the line: Me.txtcompno.Caption = ws.Cells(iRow, 1).Value + 1
example of a database user form that will allow me to list records in a sheet as well as search for records in a sheet. I know excel has a built in feature for this but it is menu driven and I need something that is button driven and will allow me to resize the form layout. I was not able to figure out how to do that with the built in form.
I have fought with this for 2 days and I am trying to have a worksheet cell update the date and time if the cell it is referencing (B3 see below)
Here is the formula I am using however it updates every time a new row is added to the worksheet. So the Date/Time stamp on each row is always updated to NOW() everytime.
=IF(ISNA(B3),"0/0/00 00:00",NOW())
I would like to have a Date/Time stamp stay as is once that row has been added. Is there anyway to stop the field from updating once the date and time have been set?
I have a graph that is showing the date on "Y" axis and a value on "X" axis, when I add a new date and value to my data the graph does not update, it just shows the data when I first created the graph.
How do I get the graph to display the new data I entered ?
I created a line graph by clicking on the "A" in column "A" (Thats where my date is) then clicking on the "B" in column "B" (Thats where my values are) and clicking the create graph button then clicked finished.
consolidating data from 3 worksheets which contain same data fields but each representing 1 brand. I like to have a summary/mastersheet to contain data from all 3 worksheets and then when the data in each worksheet is added or updated, the summary worksheet should reflect the changes (adding new data to the last row).
how to make all cells displaying an item from the list source update with new information added to list source.
Example: Cell "A1" on worksheet 2 displays the 3rd slot of information from list source on worsheet 5. I want cell "A1" on worksheet 2 to update when the list source information in the 3rd slot on worksheet 5 is changed.
Notes: The list is set up by naming the columns on Worksheet 5 and is set as a validation list on the other worksheets. So on Worksheet 2 column "A" has the validation
VB: AutoLinked keywords will cause extra spaces before keywords. Extra spacing is NOT transferred when copy/pasting, but IS if the keyword uses "quotes".
I have created a userform to add a new user and his/her password to a list of usernames and passwords (which i use for login procedure). Now, as the login name must be unique, I would like the userform to disallow existent usernames from being added. How do I go about doing this?
I am trying to prevent/remove duplicates and blank rows from occuring in a spreadsheet which is being populated via a Userform. The user must be able to add items to the spreadsheet during the normal course of work, so I guess that the blank line removal should occur when they exit the module or application.
However, duplicate prevention is particularly important as the data being captured pertains to products. Column A of the spreadsheet contains the product code and that will be the "watch" column. I have tried various options, particularly for removing blank rows and have so far have not had success.
Something that I have noticed is that when a new item is 'added' to the spreadsheet and the job is either cancelled or not saved, that a simple resize of the range through a recount of the rows to the first one empty does not remove the blank lines which is interesting too.
how to automatically complete with Excel the following task:
1. I have two email databases in Excel: a master database and opt-out database.
2. I need to remove from the Master database emails of opted-out people.
3. Since the databases are large, I'd like to use a relevant Excel function to do that automatically.:
In the master list (column B) I have all the emails from the Master list. I have copied in the column C of the Master list the emails of all who opted-out. I need to remove opted out emails (listed in column C) from the master email list (column B).
I have been working on large project using Excel VBA for several days. My code seems to be working correctly, but I have more to do and now, when I drag an object from the toolbox onto a UserForm, the object is not added to the list of objects on the form. If I go back to versions of the project that I was working on several days ago, there is no problem. If I run "Workbook Rebuilder", the objects that I have dragged onto the form are then added to the object list, but I still can't add new objects to forms from within the VBA editor. Is the project corrupted, or is there some other explanation, and are there any fixes? The code runs about 50 pages, and there are over 20 forms, so redoing from scratch is only a last resort option.
A worksheet has a column named "Grade". There are may entries into this column, and most are used multiple times. I'd like a list in another location (to use in a list box on a user form) that contains all of the unique entries in the "Grade" column.
I know how to do the Advanced filter for unique records, but when I add different grades to the column, the filtered list does not update to reflect the addition. Do I need to run a macro to run the filter after every new entry?
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?
I have been modifying a workbook and the original macro will send to the sheet Results once the "Search" button is clicked, but I have found that this macro is displaying duplicate records. Can anyone help me put in an auto filter to find only unique records? My second workaround option is if someone can help me remove the go to/select sheet option from the "Search" macro so that a user will not automatically be sent to the Results tab and will instead hit the "Confirm Category Selection" button (which auto filters before sending the user to the Results tab).
I've been trying to resolve an issue with the userform that i created. It adds new records to the sheet "Data" but i can't seem to add a search/edit function to it.
It could be either a combobox with the existing Project Id's or a text box + a control button, so a user could enter Project Id and hit a button.
The spreadsheet example is attached : Project Entry Form.xls
I have a userform with several textboxes and listview. I have a ticket number with multiple trasaction, when saving the first transaction to temp table(sheet). It was terminated (unload) which it should be back to textbox2 (ticketnumber for additional transaction.
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 am very new to Excel/VBA. I have created a "Customer Complaint System" in excel and have designed a user form for users to enter new complaints.
My next step is to design a Search or Look up form for viewing the complaints where users can choose to look up complaints by either Complaint No or Customer or Month.
The worksheet that stored my data is called "ComplaintData" which is hidden. In the sheet "COmplaintData" I have following 10 Columns:
Column A - Complaint No Column B - Date Column C - Customer Column D - Contact Person Column E - Product Column F - Batch Column G - Category (This relates to Complaint Category) Column H - Description Column I - Account Manager Column J - Month (This just takes value from B and converts to month, so hopefully I can sort by month if required..)
I did see a few examples of look up forms but am struggling to customise them to suit me.
Ideally I need a combobox & textbox in serach field. So user can choose the "Search by" category using combobox e.g. Complaint No, Customer or Month and then enter the relevent text in the textbox to carryout the search.
and then use labels & listbox to display the related fields on the form. The reason I prefer labels is that I do not want users to edit the info. and listbox to show multiple results out of which user can choose specific one....e.g. when user does a search by Customer, I want listbox to show the various products that customer has logged complaints for.
I need to create a simple edit VBA script to allow user to search and edit existing excel row records. I had created the add record button with reference to some of the site in the web.
I've got this macro, that will auto fill in the "username" (Col. J),and the date (Col. K), When a value is "typed" into the column I for the same row.
If I "Copy N Paste" the same value down column I for any given number of rows, the data will not autofill in to (Col.J&K). This only happens when a value is typed.
Is there a way to fix this so it will auto fill when, a value is "Copied and Pasted"?
Also, how would I set the range for this to happen for row 9 and down. I don't want the auto fill happening in rows 1-8.
I've attached an example layout. Here's the code I'm working with:
I'm having trouble getting my random number generator functions to use my variables that are defined by text box inputs. I can mouse over the variables in the code and they have the correct values, with the excpetion of where they are listed in the functions. I'm sure I'm missing something simple, thanks in advance for any help!
Private Sub cmdPopulate_Click() StdDev = txtStdDev.Value RandomNum = txtRandomNum.Value Mean = txtMean.Value lambda = txtLambda.Value OriginCell = txtOriginCell.Value If cmbDistributions.Value = "Normal" Then .................
I have over 60,000 rows of data. In one cell of each row is a "student ID". I need to determine how many times a given ID appears just once, how many times an ID shows up twice, three times etc.