• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 215
  • Last Modified:

Excel Replace Items

Hi Experts,

Can someone please tell me if it possible to replace more than one item in excel?

For example, if I wanted to replace the numbers 5,4,3,2,1 with 1,2,3,4,5 can I do that in one shot?

At the moment, I would have to replace 5, with 1, then go back in and replace 4 with 2 etc...


Cheers

Carlton
0
cpatte7372
Asked:
cpatte7372
1 Solution
 
Rory ArchibaldCommented:
No you can't. And doing it one at a time will be tricky since you'll end up replacing items multiple times - e.g. you convert 5 to 1, then later you convert all 1s to 5s!
0
 
Neil RussellTechnical Development LeadCommented:
Your problem will come when you get past 3.....

Replace all 5 with 1
Replace all 4 with 2
3 = 3 anyway
Replace all 2 with 4 !!

Hold on!! All the ones that were 4 became 2! Now you dont know what 2 is a 2 and what used to be 4!

Needs a bit more thinking behind this one.
0
 
SiddharthRoutCommented:
>>>>Can someone please tell me if it possible to replace more than one item in excel?

Yes it is possible via VBA Code. Let me create a sample for you.

Sid
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
nettek0300Commented:
If the numbers are in a single cell, they you can do a find and replace.  Type 5,4,3,2,1 in the find and 1,2,3,4,5 in the replace field.  You can do each one individually by clicking replace, or all at one time with replace all.
0
 
SiddharthRoutCommented:
Ok Here is the sample. Please note that for realistic situation, you will have to change the code. The logic that I am using is to replace the values of the numbers with their ASCII values and then doing a final replace. I also took the liberty to create multiple sample data i.e I pasted 1-5 multiple times.

Hope this is what you wanted?

Sid

Code Used

Option Explicit

Private Sub CommandButton1_Click()
    Dim rng As Range, aCell As Range, bCell As Range
    Dim ws As Worksheet
    Dim ReplaceChar As Long, i As Long, j As Long
    Dim ExitLoop As Boolean
    
    Set ws = Sheets("Sheet1")
    
    Set rng = ws.Range("A1:A15")
    
    For Each aCell In rng
        aCell.Value = Asc(aCell.Value)
    Next
    
    j = 53
    For i = 49 To 53
        ReplaceChar = Chr(j)
        j = j - 1
        Set aCell = rng.Find(What:=i, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
        
        ExitLoop = False
        If Not aCell Is Nothing Then
            Set bCell = aCell
            aCell.Value = ReplaceChar
            Do While ExitLoop = False
                Set aCell = rng.FindNext(After:=aCell)
                If Not aCell Is Nothing Then
                    If aCell.Address = bCell.Address Then Exit Do
                    aCell.Value = ReplaceChar
                Else
                    ExitLoop = True
                End If
            Loop
        End If
    Next i
End Sub

Open in new window



Sample.xls
0
 
cpatte7372Author Commented:
Sid,

That is exactly what I wanted.

You've come through again.

Cheers man.
0
 
SiddharthRoutCommented:
Glad to be of help :)

Sid
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

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