Excel - Extract all letters from a cell sentence

Asked By michaelxhermes on 13-Dec-07 05:59 PM
Extract all letters from a text word or sentence

I would like to extract all the letters from a sentence which is entered in a
cell.  I need each of the letters separately to “encrypt” them, I can then
can concatenate them back to form the encrypted sentence.  (for a school
lesson on encryption)

I know I can use MID() function to extract each letter

But  for this I need to have the position of the letter I want in the
function  =MID(A1,start,1)   but start increases by one for each letter,  so
I need to hard code the start from 1 to say 50  to extract each letter in

Is there any other way I can do this?  So I don’t have to hard code and so I
can have this extract working for any length of initial sentence!

I know I could do this is VB code but was just wondering if  anyone knows a
simpler solution using the normal excel functions?

Thanks for your help


Don Guillett replied on 13-Dec-07 06:10 PM
Not exactly sure what you are doing but this should help
Sub getletterstostring()
mc = Application.Trim(ActiveCell)
For i = 1 To Len(mc)
'If Mid(mc, i, 1) <> " " Then MsgBox Mid(mc, i, 1)
If Mid(mc, i, 1) <> " " Then ms = ms & Mid(mc, i, 1)
Next i
MsgBox ms
End Sub

Don Guillett
Microsoft MVP Excel
SalesAid Software
Gord Dibben replied on 13-Dec-07 07:15 PM
This is the sentence of close to 50 chars in A1

=MID($A$1,ROW(),1)  entered in B1 and dragged down.

Will return letters and spaces.

Gord Dibben  MS Excel MVP
michaelxhermes via OfficeKB.com replied on 14-Dec-07 07:38 AM
Thanks very  much Gord  and Don

I used the column() function to give me letter postions to extract

But now I have a different problem

I need to join a long list of 1 char cells back to one cell –one  word in the
one cell


This will work but is there any other way of doing this so I don’t have to
list all these and more cells?



Message posted via OfficeKB.com
Gord Dibben replied on 14-Dec-07 01:21 PM

Function ConCatRange(CellBlock As Range) As String
Dim Cell As Range
Dim sbuf As String
For Each Cell In CellBlock
If Len(Cell.text) > 0 Then sbuf = sbuf & Cell.text & ""
ConCatRange = Left(sbuf, Len(sbuf) - 1)
End Function



Sub ConCat_Cells()
Dim X As Range
Dim y As Range
Dim z As Range
Dim w As String
Dim sbuf As String
On Error GoTo endit
w = InputBox("Enter a De-limiter if Desired")
Set z = Application.InputBox("Select Destination Cell", _
Application.SendKeys "+{F8}"
Set X = Application.InputBox("Select Cells, Contiguous or Non-Contiguous", _
For Each y In X
If Len(y.text) > 0 Then sbuf = sbuf & y.text & w
z = Left(sbuf, Len(sbuf) - Len(w))
Exit Sub
MsgBox "Nothing Selected.  Please try again."
End Sub


On Fri, 14 Dec 2007 12:38:56 GMT, "michaelxhermes via OfficeKB.com" <u39868@uwe>
michaelxhermes via OfficeKB.com replied on 14-Dec-07 01:59 PM
Thanks Gord for your time and interest!

Much appreciated

I will try you solution now



Message posted via OfficeKB.com