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.
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 2 sheets, List 1 and List 2 Both lists contain generic part numbers in column A, so because there could be 2 manfacturers of the same part there will be duplication of the generic part number.
What I want is to prevent someone entering a generic part number in list 1, which already exists on list 2.
I there any cde which can be put in the sheet which will show an error message for this?
How do I keep the same names from coming up on the same column when randomly generated there (I hit f9 and names randomly generate on my sheet)? I'm trying to integrate this fix into =IF(Override!G5>0, Override!G5, Shuffle!A34) formula. That formula is the formula that recieves the randomly generated names into the cells I have chosen. The override is so I can do just that if I dont like the generation of names.
example:
name 1 name 2 name 3 name 1 <---if that happens I want this cell to respond by reshuffling until it equals a name that is not in its column, but just that one cell, not the others.
The following attacted program is a name generator. It randomly generates names from the Roster sheet to the shuffle sheet (to be randomized) then displays it on the watchbill sheet. The problem I'm having is that the names seem to be repeating themselves before the entire list is used at least once from the roster sheet. I need all the names to generate at least once then have it fairly repeat the names (but not in the same columns on the watchbill sheet). Can this be done using the formulas I have? I've been trying to figure this out forever, its just a little beyond my level.
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 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.
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 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?
When user presses "ESC" key on an open userform, data he has changed in controls (simple textbox for example) gets resetted. Right? I'm seeing such behavior in Excel 2003. How about other versions?
I'd like to see some documentation about what exactly is going on, and how to prevent such unexpected feature (that forces data loss), but could not find.
I mean that i have no commandbutton with cancel=true. By default I want to keep the data user has entered/changed. Unfortunately this data reset finds place before any trappable event, or am i wrong?
I have not found any working way to capture keypresses on userform level. Userform has _KeyPress and other events, but those are not firing? If there is one, that would be helpful. Perhaps even on system level with some APIs? Altough that sounds way too complicated for a problem that should need only one little-known flag set. Perhaps there is such property somewhere?
I have a spreadsheet with a User From that transfers data from the user form to a sheet each time OK is pressed. On my workstation, the form stays in the middle of the screen. On the PC where it is in production, it moves to the left of screen a little each time OK is pressed until it is hard up against the edge. We recently moved to Excel 2003, and I'm wondering if there is a setting in Excel that contols this.
I am using a macro that copied a string from another app, and I would like to know if there is a way to remove the sign "_" (underscore) before it paste to the TextBox1?
I declare the textbox as : TextBox1.Value = DATA
When the macro run, it takes the info from the app and send the string DATA to the TextBox1.Value, however there is ugly _ from the data. I want to be able to remove that sign right after it paste into the TextBox1.
Is there a way i could put a validation on a text box that doesn't allow the user to enter a value that already exists in a given range. The object being to avoid duplicate entries.
I have created a userform with 3 text boxes. It also has three buttons - clear, Cancel and Generate record button.
User form takes entries in the three text boxes and on clicking the Generate Record button, the values of the three Text Boxes are inserted in Column A, B and C of sheet1. The columns keep on populating with new data on each submit in the row below the last record.
Now it is required to enter data only if the value entered in TextBox1 is new and has not been entered previously in column A. If textbox entry is already aviailable in column A, a message box of 'Record available' shoud be prompted and the text entry must not be allowed until the data entered in TextBox1 is not unique.
I have a userform with several textboxes and 2 comboboxes. The data that I need protected from duplication is based in the comboboxes. If I ignore the other fields and presume the following it may be easier to understand:
The comboboxes are populated by the data stored in sheet1 and when the userform is complete, the OK button populates all the data into sheet2
Combobox1 contains names eg, John, Julie, Bob etc Combobox2 contains colours eg, Red, Blue, Green etc
I want the userform to allow the data to be entered into sheet2 only if it is not an exact duplicate of the choices in BOTH of the comboboxes
For Example John Red Julie Red Bob Blue John Blue
These are all ok, however, to try and enter John Red again would bring up a message box indicating a duplicate entry and prevent the data from being entered.
Is there a way to avoid a textbox value from being entered into the same cell on a worksheet more than once.
I am building a BOL(Bill Of Lading) wizard. Within the userform the end user will input the part numbers and quantities to be shipped... it also has a textbox that will hold the PO number that each part belongs to. I have a command button that says Add to Pallet 1. Pallet 1 will be on a row by itself on the excel sheet. Parts belonging to different PO#'s can be on this 1 pallet. When the end user clicks the "add to pallet1" button... the PO textbox (textbox6) value will be sent to (Sheet3) Cell I28. If, for example, PO# 12345 has already been added to (sheet3) Cell I28 and then the end user plugs it in again, i would like for it to be discarded and a message box stating this PO Number has already been accounted for...
so you get a better understanding...
Qty's... part numbers and PO#'s for Pallet 1 will be on row 28. Multiple PO#'s will fit into Cell I28 seperated by spaces and i will do wrap text.
Qty's...part numbers and PO#'s for Pallet 2 will be on row 29...so on and so on...
We have created a macro that basically looks for rows that contain an "H" and hides the row if it does.
Users can add new rows throughtout the year to this spreadsheet. and based on certain criteria, an H or U will be placed in a hidden column which the macro looks at and hides any row it finds an H.
The user has to click on the button that has the macro assigned to it once they have finished working on the spreadsheet.
The problem we're finding is that for users who insert/delete rows, once they click the button it takes up to 15 seconds to run through macro (which is ok). However, users who haven't added or deleted any rows and who click the button, they have to wait upto 5 minutes (which isn't ok) for the macro ro run.
We can't figure out why the macro takes longer to run when no changes have been made?
In short, I would like a pivot table to only count unique values, but when I click into the pivot I would like to show all instances of that value. For example:
I have a table of data that I am creating a pivot table from. There are fields for Customer ID, Task Name, Age, and Notes. There will be multiple records for a single Customer ID each time it has new notes.
I would like to create a pivot table that has Task Name in the Row Labels, Age in the Column Labels, and count of Customer ID in the Values, so that, for example, I can see how many accounts have been in the Design task for 2 days. However, when I do this it counts each record, but I would like it to count each unique Customer ID. Also, when I click into the pivot, instead of pulling up one line per Customer ID, I would like it to pull up each instance of Customer IDs in that Task Name/Age combination (similar to doing a DISTINCT in SQL).
I have a list of isometric drawing numbers ending with a [underscore]weld number e.g. 1692-SG-0040-04_05.
Some welds are repaired--in that scenario the amended weld number will be 1692-SG-0040-04_05R1, and even 1692-SG-0040-04_05R2 if repaired for a second time.
On occasion a weld may be cut out entirely and a new weld done. The weld number for that will be 6317-FG-1690-02_06C1.
And here's a wrinkle I've just verified...a cut weld may also be repaired so the weld number will look like 1698-SG-0077-01_04C1R1.
Is there a formula to count these as one weld: 1692-SG-0040-04_05 1692-SG-0040-04_05R1 1692-SG-0040-04_05R2
This as one weld: 6317-FG-1690-02_06 6317-FG-1690-02_06C1 6317-FG-1690-02_06C2
...and this as one weld: 1698-SG-0077-01_04 1698-SG-0077-01_04C1 1698-SG-0077-01_04C1R1
I am having trouble creating a function to count duplicates of duplicates.
An example of the data table 1 is:
Product 1 2nd Product 1 2nd Product 1 New Product 1 New Product 1 Flt Product 2 2nd Product 2 New Product 2 New Product 2 Flt Product 2 Flt Product 3 2nd Product 3 2nd Product 3 2nd Product 3 New Product 3 Flt
I created a new table (table 2) and made a list of all the Products on table 1 and removed the duplicates. I now have 3 columns with titles New, 2nd and Flt as follows:
New 2nd Flt Product 1 XX XX XX Product 2 XX XX XX Product 3 XX XX XX
I am trying to count the duplicates for each product (XX), but I can't seem to work it out. I've tried the MS help function, but unsure of the actual formula I need to be using.
I need to create a Spreadsheet where a certain Value is added to the from of the data I enter into the cell. For example: All of my MAC Addresses start with 00:80:64. I want to be able to just type in the last three entries into the cell and have Excell automatically add the value 00:80:64 So I want to be able to add a specified value to ebvery entry in a collumn.
Our system, when displaying times adds a space before the time, space05:14:15 - space14:56:39, When I use this formula, =(F292-E292+(F292<E292))*24-0.5, to figure out hours worked, it does not work. If I remove the space, the formula works fine. Is there an easy way to automatically remove the space instead of having to do it manually?
I finally got the perfect code that works for me, to list a folder with path name. if I select any root like C:, D:, E:, an extra backslash is added. can this be fixed that, what ever folder or root drive I select only 1 backslash is added. here is the code
I have a workbook that has a dynamic number of tabs. Every day the report is updated, it will create a tab for yesterday's date. I need to somehow create a summary page that will add the most current tab name (which is yesterday's date) to column B and several cells from row 7 to the appropriate row on the summary page each time I add a new tab. I have attached the spreadsheet in question. I have added manual references to the fields I need to use in the summary on the tab MTD (2) If I am able to get this to work it will replace MTD.