Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Efficient paste from web page; also bring Excel to front

I am copying text from a web page, then pasting it into an Excel file. The
below code gets the job done using SENDKEYS and activesheet.paste. However,
depending on the computer I'm using, activesheet.paste does not work ALL the
time (usually the first time it errors out, then subsequent times it's ok).
I am trying to find a better way to paste the data. Paste special doesn't
give me many options (I tried paste as text, but it crashed Excel).
Additionally, if anyone knows of a way to bring Excel to the front again in a
more effective manner than <Alt-Tab through sendkeys, that would be
appreciated as well.

Here is the code:
Sheets("Data").Select
Range("B:E").ClearContents

SendKeys "^(a)", False
SendKeys "^(c)", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%({TAB})", False

Range("B1").Select
ActiveSheet.Paste
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 417
Default Efficient paste from web page; also bring Excel to front

<<Additionally, if anyone knows of a way to bring Excel to the front again
in a more effective manner than <Alt-Tab through sendkeys, that would be
appreciated as well.

Try at the end of your routine (untested):

Application.Windows(1).Activate

--
Regards,
Bill Renaud



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Efficient paste from web page; also bring Excel to front

I tried "Application.Windows(1).Activate", however, with no success. It just
kept the web page as the active window. Thanks for the suggestion though.

Todd

"Bill Renaud" wrote:

<<Additionally, if anyone knows of a way to bring Excel to the front again
in a more effective manner than <Alt-Tab through sendkeys, that would be
appreciated as well.

Try at the end of your routine (untested):

Application.Windows(1).Activate

--
Regards,
Bill Renaud




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Efficient paste from web page; also bring Excel to front

Untested...

AppActivate Application.Caption



tmwilkin wrote:

I tried "Application.Windows(1).Activate", however, with no success. It just
kept the web page as the active window. Thanks for the suggestion though.

Todd

"Bill Renaud" wrote:

<<Additionally, if anyone knows of a way to bring Excel to the front again
in a more effective manner than <Alt-Tab through sendkeys, that would be
appreciated as well.

Try at the end of your routine (untested):

Application.Windows(1).Activate

--
Regards,
Bill Renaud





--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 417
Default Efficient paste from web page; also bring Excel to front

OK, I did a little more work to check into this, as this is something that
I will be able to use in the future myself :)

Assuming that the IE window with the desired data is already being
displayed, try the following routine to simply select all of the data in
the IE window, copy it to the clipboard, then paste it onto a worksheet. (I
used the crime stats page from the Houston Police dept. for my neighborhood
as an example
http://www.houstontx.gov/police/cs/s.../oct075f40.htm)

Make sure that you pull down the Tools menu and select References, then add
a reference to "Microsoft Internet Controls" first (I am running Excel 2000
on Windows ME; it might be different on your system).

If the IE window is not already displayed, then I think you would use
CreateObject, instead of GetObject.

'----------------------------------------------------------------------
'References required:
' Microsoft Internet Controls
' C:\WINDOWS\SYSTEM\SHDOCVW.DLL

Public Sub Test()
'Declare Excel variables.
Dim xlApp As Excel.Application
Dim wsData As Worksheet

'Declare IE Browser variables.
Dim IEApp As InternetExplorer

'Set variables to Excel first.
Set xlApp = Application
Set wsData = xlApp.Worksheets("Data")

'Set variables to the browser window.
Set IEApp = GetObject(, "InternetExplorer.Application")

'Fetch the data from the Internet Explorer window.
With IEApp
.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
End With

'Re-activate Excel and paste data onto the worksheet.
AppActivate xlApp
wsData.PasteSpecial _
Format:="HTML", _
Link:=False, _
DisplayAsIcon:=False
End Sub

--
Regards,
Bill Renaud





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 417
Default Efficient paste from web page; also bring Excel to front

This is if IE is not already running. My code works for IE already running,
if you have already navigated to the page, as noted in my post.

--
Regards,
Bill Renaud



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Overrighting ( bring to front) dpal Excel Discussion (Misc queries) 1 September 24th 09 10:49 PM
Bring to Front Chuck Excel Discussion (Misc queries) 0 November 8th 06 04:50 PM
Bring series to front coa01gsb Charts and Charting in Excel 1 March 21st 06 06:39 PM
How do I bring a trendline in front of an object in Excel? Crappy KTP Assistant Charts and Charting in Excel 2 July 20th 05 08:41 PM
How do i "bring to front" bubbles in excel bubble charts which ar. Ganesh Charts and Charting in Excel 1 March 10th 05 01:47 PM


All times are GMT +1. The time now is 04:34 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"