"-=rjh=-" <> wrote in message
news:...
> Magic Marker wrote:
>>
>> What's hard about recording a few keystrokes as a macro and and
>> assigning them to a hot key ? Personally I find that VBA makes a
>> lot of things easier.
>>
>>
>
> What's hard about designing the application so it is easy to use?
> We've got heaps of processing power, huge displays, and PCs continue
> to confuse people and they are not getting any easier to use.
Take a poll of 1000 people, and see if you can tell if there's an
obvious paste default that will please everyone. Point is, Excel is
infinitely customizable so that you're never stuck with what you think
might be someone else's bad choice.
>
> While a geek might want to play around like that, most people who
> use their software for work just want to get the job done; they are
> too busy and focused on the job at hand to be bothered with setting
> up macros (if they even know how) and remembering what the hotkey
> was.
>
You exaggerate the geekiness involved. Would a toolbar button do the
trick for you ? Just right-click on the standard toolbar , then go
Customize | Commands | Edit and drag "paste values" to wherever you
want.
If you prefer a keystroke option, then recording a macro would really
be the most elegant way to go. I realize you're a busy chap, but in a
little more time than it ordinarily takes you to dash off a message
like this, you could get the job done. Here are the steps, just in
case you want to give it a try:
1. You need to first create a new blank workbook dedicated exclusively
to storing macros that you can load automatically on startup from
your Program Files\XLStart folder. People often call this
"personal.xls", but you can name it whatever you want. Once you've
saved that, go Window | Hide and it'll disappear.
2. Open any other spreadsheet you have, copy some cell with
formatting, select the cell you want to paste it to, then go Tools |
Macro | Record macro -- a small toolbar will pop up, you're recording
now -- so then just do what you normally do to paste values: Edit |
Paste Special | Values, and then click the "stop recording" button on
that little toolbar.
3. Hit Alt-F11 to bring up the VBA window. In the "project" window on
the left, find the workbook you've been using and click the Modules
button until you see "Module1" -- that's where you're recorded macro
was stored. It should look like this:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 4/26/2006 by you
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
End Sub
Change the name from "Macro1" to something more meaningful like
"PasteValues". Then copy all of that text.
4. At this point, your macro is available to use in the spreadsheet
you're currently working with, but what you really want is to make it
available "globally", no matter what spreadsheet you have open. That's
what the "personal.xls" workbook is for, so locate that in the VBA
projects window, right-click and then Insert | Module -- a new blank
VBA module window will open. Paste the text from the macro you
recorded here. Click "save" on the main toolbar, then close the VBA
window.
5. From the Excel application window, go Tools | Macro | Macros and
locate the macro you just created -- if your startup workbook is
called "personal.xls" the macro would be called
"Personal.xls!PasteValues". Click Options, and then enter the
keystroke you want to use to activate the macro.
That's it. And now that you know how the process works, you can
automate almost anything you want. Word works much the same way,
except that standard commands like cut and paste (and 1000 others) can
be accessed directly from the Customize menu and assigned whatever
keystroke you want. If there's one thing about Excel that I'd want
changed, it would that -- definitely less geeeky