Solved

Add : ever two numbers in a cell

Posted on 2013-01-10
11
285 Views
Last Modified: 2013-01-10
All,

I get a spreadsheet every day with over 100 mac address. Unfortunately the mac address don't have the colon separating the numbers. How do I go about formatting a cell to add the colons?
0
Comment
Question by:Edward Pamias
11 Comments
 
LVL 46

Expert Comment

by:Martin Liss
ID: 38762759
You can use this macro. It assumes no headings and that the data is in column A.

Sub MacAddress()
Dim lngLastRow As Long
Dim lngIndex As Long
Dim V As String
lngLastRow = Range("A65536").End(xlUp).Row
' Change 1 to 2 if you have a heading
For lngIndex = 1 To lngLastRow
' 1 in these two lines represents column A
    V = Cells(lngIndex, 1).Value
    Cells(lngIndex, 1).Value = Mid(V, 1, 2) & "-" & Mid(V, 3, 2) & "-" & Mid(V, 5, 2) & Mid(V, 7, 2) & "-" & Mid(V, 9, 2) & "-" & Mid(V, 11, 2)
Next

Open in new window

0
 
LVL 50

Expert Comment

by:barry houdini
ID: 38762763
I assume there may be letters in which case you can't use number formatting, if you have an entry like this in A2

0123456789ab

and you want it to look like this

01:23:45:67:89:ab

You could use this formula in B2

=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,":"),6,0,":"),9,0,":"),12,0,":"),15,0,":")

regards, barry
0
 
LVL 46

Accepted Solution

by:
Martin Liss earned 500 total points
ID: 38762768
To ammend my code a bit to make it clearer.

Sub MacAddress()
Dim lngLastRow As Long
Dim lngIndex As Long
Dim V As String
Const COL = 1 ' = column A

lngLastRow = Range("A65536").End(xlUp).Row

For lngIndex = 1 To lngLastRow
    V = Cells(lngIndex, COL).Value
    Cells(lngIndex, COL).Value = Mid(V, 1, 2) & "-" & Mid(V, 3, 2) & "-" & Mid(V, 5, 2) & Mid(V, 7, 2) & "-" & Mid(V, 9, 2) & "-" & Mid(V, 11, 2)
Next
End Sub

Open in new window

0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 
LVL 14

Author Comment

by:Edward Pamias
ID: 38762807
@MartinLiss

I am using office 2010 if that makes a difference. I am getting a compile error. See below

Sub MacAddress()
Dim lngLastRow As Long
Dim lngIndex As Long
Dim V As String
conts COL = 1 ' = column A
lngLastRow = Range("A65536").End(xlUp).Row

For lngIndex = 1 To lngLastRow
    V = Cells(lngIndex, COL).Value
    Cells(lngIndex, COL).Value = Mid(V, 1, 2) & "-" & Mid(V, 3, 2) & "-" & Mid(V, 5, 2) & Mid(V, 7, 2) & "-" & Mid(V, 9, 2) & "-" & Mid(V, 11, 2)
Next
End Sub
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 38762814
I updated the code. Change conts to Const
0
 
LVL 14

Author Comment

by:Edward Pamias
ID: 38762887
@Martinlis

We are close I am missing a colon between BB and CC



00:aa:bbcc:dd:ee
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 38762936
Sub MacAddress()
Dim lngLastRow As Long
Dim lngIndex As Long
Dim V As String
Const COL = 1 ' = column A
lngLastRow = Range("A65536").End(xlUp).Row

For lngIndex = 1 To lngLastRow
    V = Cells(lngIndex, COL).Value
    Cells(lngIndex, COL).Value = Mid(V, 1, 2) & ":" & Mid(V, 3, 2) & ":" & Mid(V, 5, 2) & ":" & Mid(V, 7, 2) & ":" & Mid(V, 9, 2) & ":" & Mid(V, 11, 2)
Next
End Sub

Open in new window

0
 
LVL 14

Author Comment

by:Edward Pamias
ID: 38762966
@ Martinls

I got it.. I put my glasses on this time and saw you were missing a ":"  so I added it and it works great!  Thanks!

Sub MacAddress()
Dim lngLastRow As Long
Dim lngIndex As Long
Dim V As String
Const COL = 1 ' = column A
lngLastRow = Range("A65536").End(xlUp).Row

For lngIndex = 1 To lngLastRow
    V = Cells(lngIndex, COL).Value
    Cells(lngIndex, COL).Value = Mid(V, 1, 2) & ":" & Mid(V, 3, 2) & ":" & Mid(V, 5, 2) & ":" & Mid(V, 7, 2) & ":" & Mid(V, 9, 2) & ":" & Mid(V, 11, 2)
Next
End Sub
0
 
LVL 14

Author Closing Comment

by:Edward Pamias
ID: 38762970
Thank you very much! This worked great!
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 38763070
You're welcome and I'm glad I was able to help.

Marty - MVP 2009 to 2012
0
 
LVL 29

Expert Comment

by:IrogSinta
ID: 38763087
The Format function is another option:
Cells(lngIndex, COL).Value = Format(V, "&&:&&:&&:&&:&&:&&")
0

Featured Post

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to convert from xls to xlsx using java 7 37
Consolidation 8 19
VBA code to open new email message (Contact Us) 3 32
Auto Populate Day Month  2 digit Date 4 16
Lync meeting or Lync conferencing is what many organizations would like to deploy to allow them save money. But companies are now giving up for various reasons, one of which is that they cannot join external meetings (non-federated company meetings)…
Many companies are making the switch from Microsoft to Google Apps (https://www.google.com/work/apps/business/). Use this article to learn more about what Google Apps has to offer and to help if you’re planning on migrating to Google Apps. It is …
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question