Reputation: 27
I'm currently automating a manual process that does the following steps:
1.Prompts the user to open a data file and opens the file
2.Inserts 4 columns
3.Using the data that was already in the file creates a unique string in the format "DD/MM/YYYY TEXT" where text is a variable
4.Uses an if statement to determine if a row exists within the Master Data File
5.If the value in column d = "Exists" then find the string in the Master data file and use the vlookup function to transfer the data from the data file to the Master Data File
6.Else (If the value = anything else) then Insert a new row name it and then use the vlookup function to transfer the data from the data file to the master file
My issue lies with the fact that the Unq.String sometimes/rarely isn't an EXACT match so by using the FIND function it will return the message: "We can't find what you are looking for. Click options for more ways to search"
My question to you guys is, is there a way that upon receiving this error message, that the data is then pasted on another tab called "mop up" before moving onto the next row? I'm using a LOOP within my code for steps 5 and 6 as I will need to jump down each row but I wouldn't know where to start this without breaking the loop.
Thanks for your help in advance guys and let me know if you need any more information regarding the context.
Aaron
Thanks
EDIT Comments explain how I plan to use this:
Dim ColumnD As String
Dim SearchValue As String
If ColumnD = "Exists" Then
'Find SearchValue in Master data sheet and vlookup
'ELSE Insert new row, add UNQ.String to New row then do the vlookup
'Loop untill using Rows.count + 1 and lastRow (Already declared)
Upvotes: 1
Views: 35882
Reputation: 2167
This question was already explored here: How to detect whether VBA Excel found something.
Basically you set a range variable to the resulting .find
range. If that range is Nothing
then nothing was returned and you can respond to the user in the manner that best suits you.
EDIT: Per OP's added inquiry
Sub findsomething()
Dim foundsomething As Range
Dim searchterm As String
searchterm = "Search Term"
Set foundsomething = Application.ActiveSheet.Find(What:="search term", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If (Not foundsomething Is Nothing) And columnD = "Exists" Then
' Do something
End If
End Sub
Cheers,
Upvotes: 3