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
turn

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

Michael




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
dguillett1@austin.rr.com
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

=CONCATENATE(C40,D40,E40,F40,G40,H40,I40,J40,K40,L40,M40,N40,O40,P40,Q40)

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

Thanks

Michael



--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.aspx/excel-functions/200712/1
Gord Dibben replied on 14-Dec-07 01:21 PM
UDF.................

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 & ""
Next
ConCatRange = Left(sbuf, Len(sbuf) - 1)
End Function

=ConCatRange(C40:Q40)

Macro..........................

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
Next
z = Left(sbuf, Len(sbuf) - Len(w))
Exit Sub
endit:
MsgBox "Nothing Selected.  Please try again."
End Sub


Gord

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

Regards

Michael

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.aspx/excel-functions/200712/1