I have a spreadsheet that contains around 1500 rows and 54 columns of data. I currently have a VBA program that controls all the entries and updates of records, but it is very large program that takes an age to update data - it updates via a loop that reads all records, from Row 1, until it finds a matching record (all records have a unique reference number, so no duplicates are possible). What I want to do is to be able to do is:

1) Use the URN (entered on a userform) and that find that number in the first cell of the row
2) Extract the data for the URN and populate the userform
3) Update the data for URN on the spreadsheet with the changed information on the userform
4) If the URN does not retrieve data then I want to add a new row that will contain all the data on the userform

The userform that displays the data will be a different userform to the one where the user enters the URN.

I don't want to have to read every record in order to have to update/retrieve just one,. that may well be the 1000th record.

Any ideas anyone?