View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Carriage return in same cell without using alt-enter

Macros that do anything significant won't run if the user is in edit mode.

Maybe you can tell the user to use a specific character (like |) that isn't used
anywhere else in the workbook.

Then you could use a Workbook_SheetChange (or an application event for lots of
workbooks???) to change this unique character to the alt-enter.

Personally, I think you're underestimating your users. They will learn how to
use it--and maybe use it in workbooks that you don't know about.



Ivan Camac wrote:

Almost there... Here is the code now in the custom Sub:

Sub InCellReturn()
Dim EditRng As Range
Set EditRng = Selection.Cells(1)
EditRng.Value = EditRng.Value & Chr(10)
Application.SendKeys "{F2}"
End Sub

This works in conjunction with the Application.OnKey as long as the cursor
is at the end of the cell text. However, it is still no good if someone has
the cursor part way through the text.

Cheers,
Ivan.

"Ivan Camac" wrote:

Hi,

I am trying to achieve the same thing for an Excel document that will be
used by a huge audience within our organisation, and I am confident that
there will be much resistance to using Alt+ENTER.
I have managed to intercept the ENTER keypress whilst editing the cell with:
Application.OnKey "~", "InCellReturn" (with InCellReturn being a custom
Subroutine)

However, I can't work out how to determine where the cursor is within the
cell in order to insert the carriage return in the right place, and then
return to edit mode. I also tried SendKeys in the Sub, but this unfortunately
creates an infinite loop.

Cheers,
Ivan.

"Gord Dibben" wrote:

Not without using code.

You cannot do it while entering the text string because code won't run while
in editing mode.

You could do it after entry with code if you trained her to use a particular
character where she wanted a new paragraph.

Upon her hitting Enter key the event code would run to substitute the
character with a linefeed.

Chr(91) is the [ character.

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
.Replace what:=Chr(91), replacement:=Chr(10), _
lookat:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub

Personally I think Alt + Enter is just as easy while she is entering the
text.


Gord Dibben MS Excel MVP


On Tue, 5 Jan 2010 11:11:01 -0800, charlie54933
wrote:

I know to insert a new paragraph within the same cell to use the keystroke
alt-enter, however, I'm trying to make a usable form for my boss, and I'd
like to make it super user friendly and not have to have her use alt-enter
every time she needs to create a new paragraph in one particular cell. Any
way to use some kind of code to allow the new paragraph in the same cell at
just hitting the enter key?
Thank you!!

.


--

Dave Peterson