Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 334
  • Last Modified:

Validate Excel via VBA

Hi Experts,

I have excel file with one spreadsheet and one column and in this column I have data.
Some of the cells have in different places substring " - abc .... " which can be a different length. What I would do is to find this substring and whatever is after it till the end of line
copy and paste in another cell and then remove from original cell.

so basically here is example :

Input :
A
aaaaaaaa   - abc 012345
bbbbbbb   - abc 01282319274
cccccccc   - abc 0112

Output :

A               B
aaaaaaaa   - abc 012345
bbbbbbb   - abc 01282319274
cccccccc   - abc 0112


Thanks.
0
fpoyavo
Asked:
fpoyavo
  • 3
  • 3
  • 2
1 Solution
 
FlysterCommented:
Assuming your data is in column A, this will get you the first part:

=LEFT(A1,FIND(" ",A1))

And this will give you the second part:

=RIGHT(A1,LEN(A1)-FIND(" ",A1))

You can then hide column A.

Flyster
0
 
fpoyavoAuthor Commented:
Not sure if you understood the specs. I didn't ask to hide anything. I needed To find and copy to another cell and then to remove it from original cell.
0
 
FlysterCommented:
Sorry about that. Here's a macro that will split the string for you:
Sub SplitString()
Dim stra, strb As String
Dim i As Integer

i = InStr(Range("A" & 1), " ")
  For i = 1 To ActiveSheet.UsedRange.Rows.Count
    stra = Left(Range("A" & i), InStr(Range("A" & i), " "))
      strb = Right(Range("A" & i), Len(Range("A" & i)) - InStr(Range("A" & i), " "))
      Range("B" & i).Value = strb
    Range("A" & i).Value = stra
  Next i

End Sub

Open in new window

0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Rob HensonFinance AnalystCommented:
You can also use the "Text to Columns" function.

Select the column of data and then on the Data tab click the Text to Columns button.

Step 1 - select Delimited, click OK
Step 2 - check the boxes next to Space and Other and next to Other type - in the box. AT the top right check the box for treating consecutive delimiters as one
Step 3 - Click Finish

This will split the data into two columns.

Thanks
Rob H
0
 
fpoyavoAuthor Commented:
Hi Rob,

It will not work since not all cells have this " - abc ..."

Thanks.
0
 
Rob HensonFinance AnalystCommented:
So those that do not have the  "- abc" will be left as they are. Would that be the result you want anyway?

Thanks
Rob
0
 
fpoyavoAuthor Commented:
Hi Flyster,

I t gets where " - abc ..." correctly but where I don't have " - abc .." it should not remove in column A anything ... now it does leaves A empty and copies this data into B.

Thanks.
0
 
FlysterCommented:
Try this one. It will copy only the cells that contains "- abc", the rest will be left untouched:
Sub SplitString()
Dim stra, strb As String
Dim i As Integer

  For i = 1 To ActiveSheet.UsedRange.Rows.Count
    If InStr(1, Range("A" & i), "- abc") <> 0 Then
      stra = Left(Range("A" & i), InStr(Range("A" & i), " "))
      strb = Right(Range("A" & i), Len(Range("A" & i)) - InStr(Range("A" & i), " "))
      Range("B" & i).Value = strb
      Range("A" & i).Value = stra
    End If
  Next i

End Sub

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now