ceneiqe
asked on
Macro to convert replace wrong text with right text
If text is text-Master.xlsx contains those that are unbold in Text.xlsx, then replace them to the one in bold.
See attached for example.
Text-Master.xlsx
Text.xlsx
NOTE:
the text will always have 4 characters, and the characters is alpha-numeric. It can have alphabets first followed by numbers or viceversa. (see text data that i show in "Text.xlsx" row 2 to 18)
the text data that i show in "Text.xlsx" show from row 21 and onwards is just for illustration purposes. The concept of alpha-numeric still follow and that whatever appears before the bold text will be replaced by the bold text. Each grouping is separated by 2 rows. The first grouping is from row 2 to row 12 then row 15 to row 18 and then row 21 to 25 etc.
See attached for example.
Text-Master.xlsx
Text.xlsx
NOTE:
the text will always have 4 characters, and the characters is alpha-numeric. It can have alphabets first followed by numbers or viceversa. (see text data that i show in "Text.xlsx" row 2 to 18)
the text data that i show in "Text.xlsx" show from row 21 and onwards is just for illustration purposes. The concept of alpha-numeric still follow and that whatever appears before the bold text will be replaced by the bold text. Each grouping is separated by 2 rows. The first grouping is from row 2 to row 12 then row 15 to row 18 and then row 21 to 25 etc.
Do you want a macro solution or a formula solution ? Although your title says Macro !
gowflow
gowflow
Here is the code for the macro
You have to pay attention in the text.xlsx you posted line 19,20 looks blank but they are not as it seems some data was there and has been deleted. Just to make sure prior to running the macro just delete line 19 and 20 and re-insert 2 lines blank or else you may get wrong figures. this is not due to macro but coz lines are not blank ! If you have this built in then I can change the behavior of the macro.
The Text.xlsx should be in the same directory as the Text Master.xlsm anyway I am attaching both try these 2 but without deleting 19,20 as I already did.
gowflow
Text-Master.xlsm
Text.xlsx
Sub SearchReplace()
Dim WS As Worksheet
Dim WBT As Workbook
Dim WST As Worksheet
Dim MaxRow As Long, I As Long, J As Long
Dim cCell As Range
Dim vValues As Variant
Dim sReplace As String, sSearch As String
'---> Set Variables
Set WS = ActiveSheet
MaxRow = WS.Range("A" & WS.Rows.Count).End(xlUp).Row
Set WBT = Workbooks.Open(ActiveWorkbook.Path & "\Text.xlsx")
Set WST = ActiveSheet
For I = 1 To MaxRow
If WS.Cells(I, "A") <> "" Then
sSearch = WS.Cells(I, "A")
vValues = Split(WS.Cells(I, "A"), ";")
For J = LBound(vValues) To UBound(vValues)
Set cCell = WST.Range("A:A").Find(what:=vValues(J), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False)
If Not cCell Is Nothing Then
sReplace = cCell.End(xlDown).Value
sSearch = Replace(sSearch, vValues(J), sReplace)
End If
Next J
WS.Cells(I, "G") = sSearch
End If
Next I
WBT.Close False
Set WBT = Nothing
Set WST = Nothing
MsgBox "Search Replace Done !", vbExclamation
End Sub
You have to pay attention in the text.xlsx you posted line 19,20 looks blank but they are not as it seems some data was there and has been deleted. Just to make sure prior to running the macro just delete line 19 and 20 and re-insert 2 lines blank or else you may get wrong figures. this is not due to macro but coz lines are not blank ! If you have this built in then I can change the behavior of the macro.
The Text.xlsx should be in the same directory as the Text Master.xlsm anyway I am attaching both try these 2 but without deleting 19,20 as I already did.
gowflow
Text-Master.xlsm
Text.xlsx
ASKER
hi saqib,
i tried your formula in column E but doesn't work.
hi gowflow
yes i requested a macro.
but if there is a easier alternative like array formula, i can also try if it works better for me.
Thanks for the macro. i tested and there are errors.
if the data in Text master cannot be found in text, then the data should remain.
let me consolidate the errors and get back to you.
i tried your formula in column E but doesn't work.
hi gowflow
yes i requested a macro.
but if there is a easier alternative like array formula, i can also try if it works better for me.
Thanks for the macro. i tested and there are errors.
if the data in Text master cannot be found in text, then the data should remain.
let me consolidate the errors and get back to you.
ok for this one, easy. I will wait to see all the possible errors.
gowlfow
gowlfow
ASKER
For file Text.xlsx:
the following rows are left blank deliberately to act as divider to differentiate each grouping:
rows that are blank
13, 14
19, 20
26, 27
32, 33
37, 38
and so on.
The rows that are blank are always in twos.
Row 2-12 is the first grouping, 15-18 another grouping, 21 to 25 another grouping and so on.
If the data found in Text-Master.xlsm but is not found in Text.xlsx, then the data remain.
If the data is found in Text-Master.xlsm and is also found in Text.xlsx, then ensure that the bold text are replaced.
See attached.
Text.xlsx
Text-Master.xlsm
the following rows are left blank deliberately to act as divider to differentiate each grouping:
rows that are blank
13, 14
19, 20
26, 27
32, 33
37, 38
and so on.
The rows that are blank are always in twos.
Row 2-12 is the first grouping, 15-18 another grouping, 21 to 25 another grouping and so on.
If the data found in Text-Master.xlsm but is not found in Text.xlsx, then the data remain.
If the data is found in Text-Master.xlsm and is also found in Text.xlsx, then ensure that the bold text are replaced.
See attached.
Text.xlsx
Text-Master.xlsm
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Very fast and accurate !
Finally !!!!
Glad we did it.
gowflow
Glad we did it.
gowflow
=REPLACE(A1,10,4,INDEX(OFF