Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Validating a unique reference in a textbox


Hello, I am trying to do a data validation where the reference numbe
entered on a textbox on a form (which adds a record to the activ
sheet) has to be unique and not already in the workbook. I alread
have a find facility which can search selected sheets within th
workbook and I am trying to adapt this so that it will search the sam
sheets and bring up a message box if the number already exists (ie
match). I can't get it to work (it is bringing up the message box o
any number I input) & would appreciate if someone could help me on it!
Here is the relevant part of my coding:

Dim Findstring As String
Dim Rng As Excel.Range
Dim mysheets As Excel.Sheets
Dim objsheet As Excel.Worksheet

Set mysheets = Worksheets(Array("Sheet 2", "Sheet 3", "Sheet 4", _
"Sheet 5", "Sheet 10", "Sheet 11"))

For Each objsheet In mysheets
Set Rng = objsheet.Columns("A").Find(What:=Findstring, _
After:=Range("A5"), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=False)
If Not Rng Is Nothing Then
MsgBox "The reference you have entered already exists o
the database.", vbExclamation, "Box reference already exists"
TextBox1.SetFocus
Exit Sub
End If

Next
'rest of my coding for other things

Thanks

--
Blondegir
-----------------------------------------------------------------------
Blondegirl's Profile: http://www.excelforum.com/member.php...fo&userid=2961
View this thread: http://www.excelforum.com/showthread.php?threadid=54284

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Validating a unique reference in a textbox

I would see you getting an error. After:=Range("A5")
should be qualified. Also, Find wraps around, so it will search above A5 as
well if that could cause your problem.

Dim Findstring As String
Dim Rng As Excel.Range
Dim Rng1 as Excel.Range
Dim mysheets As Excel.Sheets
Dim objsheet As Excel.Worksheet

Set mysheets = Worksheets(Array("Sheet 2", "Sheet 3", "Sheet 4", _
"Sheet 5", "Sheet 10", "Sheet 11"))

For Each objsheet In mysheets
with ObjSheet
set rng1 = .Range(.Cells(5,1),.Cells(rows.count,1).End(xlup))
End With
Set Rng = rng1.Find(What:=Findstring, _
After:=rng1(1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=False)
If Not Rng Is Nothing Then
MsgBox "The reference you have entered already exists on
the database.", vbExclamation, "Box reference already exists"
TextBox1.SetFocus
Exit Sub
End If

Next

--
Regards,
Tom Ogilvy

"Blondegirl" wrote:


Hello, I am trying to do a data validation where the reference number
entered on a textbox on a form (which adds a record to the active
sheet) has to be unique and not already in the workbook. I already
have a find facility which can search selected sheets within the
workbook and I am trying to adapt this so that it will search the same
sheets and bring up a message box if the number already exists (ie a
match). I can't get it to work (it is bringing up the message box on
any number I input) & would appreciate if someone could help me on it!
Here is the relevant part of my coding:

Dim Findstring As String
Dim Rng As Excel.Range
Dim mysheets As Excel.Sheets
Dim objsheet As Excel.Worksheet

Set mysheets = Worksheets(Array("Sheet 2", "Sheet 3", "Sheet 4", _
"Sheet 5", "Sheet 10", "Sheet 11"))

For Each objsheet In mysheets
Set Rng = objsheet.Columns("A").Find(What:=Findstring, _
After:=Range("A5"), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=False)
If Not Rng Is Nothing Then
MsgBox "The reference you have entered already exists on
the database.", vbExclamation, "Box reference already exists"
TextBox1.SetFocus
Exit Sub
End If

Next
'rest of my coding for other things

Thanks.


--
Blondegirl
------------------------------------------------------------------------
Blondegirl's Profile: http://www.excelforum.com/member.php...o&userid=29615
View this thread: http://www.excelforum.com/showthread...hreadid=542849


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Validating a unique reference in a textbox


Thanks for your assistance Tom, but it now appears to be doing th
opposite! When I input a number that I know already exists it isn'
noticing it.

(Searching above the A5 won't affect anything, the only reason I hav
it like that on my other 'find' code is because the reference number
happen to begin from A5 on the sheets.)

Also, I had forgotten to write something to connect the search to th
relevant textbox eg, Textbox1 = Findstring Should that affect i
here? (It doesn't work when I add it.) If so , what should th
correct code be?

Many thanks

--
Blondegir
-----------------------------------------------------------------------
Blondegirl's Profile: http://www.excelforum.com/member.php...fo&userid=2961
View this thread: http://www.excelforum.com/showthread.php?threadid=54284

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Validating a unique reference in a textbox

Yes, you have to set FindString to the value in the Textbox.

this worked fine for me with Textbox1 being on a userform:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Findstring As String
Dim Rng As Excel.Range
Dim Rng1 As Excel.Range
Dim mysheets As Excel.Sheets
Dim objsheet As Excel.Worksheet

Set mysheets = Worksheets(Array("Sheet 2", "Sheet 3", "Sheet 4", _
"Sheet 5", "Sheet 10", "Sheet 11"))

For Each objsheet In mysheets
With objsheet
Set Rng1 = .Range(.Cells(5, 1), .Cells(Rows.Count, 1).End(xlUp))
End With
Findstring = TextBox1.Text
Set Rng = Rng1.Find(What:=Findstring, _
After:=Rng1(1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=False)
If Not Rng Is Nothing Then
MsgBox "The reference you have entered already exists on" & _
" the database.", vbExclamation, "Box reference already exists"
Cancel = True
Exit Sub
End If

Next

End Sub

--
Regards,
Tom Ogilvy



"Blondegirl" wrote:


Thanks for your assistance Tom, but it now appears to be doing the
opposite! When I input a number that I know already exists it isn't
noticing it.

(Searching above the A5 won't affect anything, the only reason I have
it like that on my other 'find' code is because the reference numbers
happen to begin from A5 on the sheets.)

Also, I had forgotten to write something to connect the search to the
relevant textbox eg, Textbox1 = Findstring Should that affect it
here? (It doesn't work when I add it.) If so , what should the
correct code be?

Many thanks.


--
Blondegirl
------------------------------------------------------------------------
Blondegirl's Profile: http://www.excelforum.com/member.php...o&userid=29615
View this thread: http://www.excelforum.com/showthread...hreadid=542849


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Validating a unique reference in a textbox


The 'Findstring = TextBox1.Text' did the trick. Thank you very much for
your time, it works a dream now! :)


--
Blondegirl
------------------------------------------------------------------------
Blondegirl's Profile: http://www.excelforum.com/member.php...o&userid=29615
View this thread: http://www.excelforum.com/showthread...hreadid=542849

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Validating number of characters in textbox Blondegirl[_9_] Excel Programming 2 May 10th 06 01:57 PM
validating input of textbox before publishing eyesonly1965 Excel Programming 4 May 7th 06 03:18 PM
validating input in textbox Jean-Pierre D via OfficeKB.com Excel Programming 1 August 15th 05 08:37 PM
Excel VBA - Cursor disappears when validating content of a TextBox lonewolfbr Excel Programming 0 September 16th 04 09:49 PM
Validating Entry into Textbox Brad[_11_] Excel Programming 1 December 4th 03 02:58 PM


All times are GMT +1. The time now is 03:43 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"