Macro Code To Extract From Web Pages
Can anybody post me some links to automating data extraction from Websites using VBA and IE. Not something I have ever bothered with before. Basically interested in using the controls and pulling tables.
View Complete Thread with Replies
Related Forum Messages:
Code To Print Multiple Pages
I have a macro that cycles through several student ID numbers and prints a progress report for each one. It works great, but I would like to add an option to pick which printer to use at the beginning of the code. In other words, when I run the macro, the printer box opens and I can pick the printer. When I click okay to print, the macro continues.
Macro To Format All Pages The Same
Im trying to get a macro that will set every sheet in the workbook i am usine, to match sheet1.
Dim WS As Worksheet
'Loop through all worksheets
For Each WS In ActiveWorkbook.Worksheets
'Do this for all sheets except these sheets
If WS.Name = "Pcard Statement" Or WS.Name = "namedranges" Then
'copy "pcard statement" page setups/print magins
Sheets(WS.Name).Range("A1").PasteSpecial Paste:=print margins?
Application.CutCopyMode = False
Macro To Paste Formulas As Values On Specific Pages
I have a macro that pastes formulas as values on specific pages (("CTY EME", "Int Center", " Total SW dist cost", "Int, pubs & oth", "Total". Is there a way to compress the macro ie with the sheet names?
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
Application.CutCopyMode = False
Designing A Macro To Copy Data From Web Pages Into Spreadsheet
I have a folder full of uniformed web pages ( name and design) and I was wondering if it's possible to create a macro that will open up each page, copy specific data from each page, and paste it into an Excel 2002 spreadsheet. Unfortunately, my skills in VBA are very limited at best and I'm not sure if this is doable or is it something I'll have to go into each page and copy the data.
Code To Extract 4 Right Chars And Paste In Another Column
I am having problems with a macro I am writing and I need some guidance on where I am going wrong (I am still a noob at VBA).
I have pasted the code below (not the most efficient use of code I know).
I have a list of departments and codes from the Intranet at Work. Now this contains a Department Code, Department Description and within the Description is a number in brackets showing how high up the organisation hierarchy they are....
Extract URLs Macro
I am looking to extract URL's from a excel sheet.
Actually,, I have some software, which I have opened in notepad,
and then copied the data into excel.
The data is a mess.
It has had loads of unwanted characters etc. I've managed to clean this all up now.
What I'm looking for if possible is to extract all URLs to another worksheet.
As an example, I have 1 sheet that has 1654 rows of data, that goes right to
All URLs now have 1 space before it and 1 space after it,
If possible, I would like to be able to run a macro that would
look at this worksheet and find all the URL's, then return
them into a new spreadsheet in a list,,, and if possible
not returning duplicates,
(If it does find dups if a pop up could mention how many dups deleted)
if this is hard to do then no worries at all.
As a note,I'd spent a while looking for a macro to delete all unwanted characters,, found 1,,
so for info purposes, I post it below, seemed to run fine;
but if there are any other alteratives/suggestions, I'm all ears
Dim vAddText(0 To 38) As String
vAddText(0) = Chr(1)
vAddText(1) = Chr(2)
vAddText(2) = Chr(3)
vAddText(3) = Chr(4)
vAddText(4) = Chr(5)
vAddText(5) = Chr(6)
vAddText(6) = Chr(7)
vAddText(7) = Chr(8)
Macro To Extract Data
I would like to create a macro so that it will pull all the data from the worksheet "Data" and put it onto worksheet "Extracted Data". However I only require the rows which have Booking Office No SU17.
Using A Macro To Extract And Rearrange Data?
I have a big collection of spreadsheets that are all laid out in the same fashion: from A2 down are the names of different individuals (one name per row). Column titles (from B1 right) are the names of unique qualifications that these individuals possess. In the cell where a row and column intersects is the date at which this qualification was awarded. If this doesn’t make total sense, I’ve attached a very basic version of this to the post (Sheet 1) – although the spreadsheets I’m working with have hundreds of individuals and scores of qualifications, rather than just a couple!
This data needs exporting/rearranging into a format that’s recognisable by another piece of software that we use. In this format, the data is split into three columns: the person’s name, a possessed qualification and the date it was awarded. This means that a single individual’s name may have multiple rows, since a different qualification will be present in each row for that person. An example of this layout is shown on Sheet 2 of the attachment.
Macro To Extract Data From Multiple Worksheets
I have a spreadsheet containing a factory's operational data, with each machine in the factory being represented by its own worksheet.
The sheets all have the same structure, with each line of data representing a shift (we have 12-hour continental shifts, so column A of all the pages has the date in an standard format, and column B has either "d" or "n", representing the shift). Various datat is documented on each machine on a shift-per-shift basis.
What I need to do is figure out how to do a macro that extracts all of the lines on all of the machines' worksheets that pertain to a particular shift (for instance, all of the lines where column A read "14-Mar" and column B read "d"), and export the values of the entire row to another worksheet, creating a shift summary on one page.
To do this, I would like to make the date and shift user-definable variables that appear at the top of what would become the summary sheet, and have a button that activated such a macro at the top of the page as well.
Macro To Extract Data And Place Into Template ...
I need to create a "purchasing programme sheet from extracted data in a different workbook.
In short I need to open the Allocation, Add stock qauntities to the the boxes with a quantity in it and if its a zero i need (Once the button has been pressed) the information to be extracted to the corresponding boxes in the Purchasing Programme Document: Description, Part Number and quantity.
Macro To Extract Tickers / Pivot Table
I need to manipulate some data in order to make it reasonable. I'm reading up on Macro's now in order to be able to do this stuff in the future, but I think macro's are a long term thing.
Actually before I go into that, is there any book one can recommend for macro's? I do have a friend's books, How to Do Everything with MS Office Excel 2003, MS Excel Bible 2003, and MS Office - Excel 2003 Formulas. Are these good or any other recommendations? In particular I would like some data to play around w/ so that when in the book they tel me to do something I actually have some data to manipulate. I imagine learning the basics of macro's will be easy enough, but as I understand it the real power of macro's comes from programming in VB, and I dont see how that can be covered in these books.
Now for the more specific questions -
My raw data looks like the attached excel file called Raw Data, I want it to end up as the other attached excel file called Result. How would I create a macro to read where the ticker begins and ends? Is there any way to do it w/o VB knowledge?
More importantly, I want to be able to order the tickers by how many times they've been mentioned. For example in the second excel file called Result, Laura has been mentioned twice as often as anyone else. When I sort this list I want to sort by who's been mentioned the most. So I'd like to see 6 lines of her data, followed by the person mentioned the second most (if they had 5 lines, the next 5 should be them etc). For this one would pivot tables do the job, or do I need macro's for this as well?
Macro To Extract Data From 3 Workbooks With Execptions
I’m not to sure this can be done but I will try and explain what I would like. I have a Master workbook simply called Master.xls (Price) and I need to extract data from 3 other workbooks, these workbooks are in a folder called INFO, the workbooks are called, Summary.xls,(Sheet1) Supplier.xls (Sheet1) and List.xls.(Sheet1). I have attached sample files of all the workbooks, the original Summary has about 2000 colums and the original List.xls has about 20000 columns.
The only workbook i would like to open would be the Master.xls, would it be possible to exract the data without opening the other workbooks? or at least to look like they are not opened. On the Master.xls
When the data button is clicked I would like the following info displayed, if possible. A3 info comes from looking at Summary.xls columns B & C and comparing it against List.xls columns A & B, when a match is found in either of the columns, the code in List.xls C column will be displayed in the Master.xls A3 cell
Macro/filters To Extract (copy/paste)
I have a mixed list of materials in column 'A'. I have two macro/filters to extract (copy/paste)... one for those ending in "[G]", and one for all others (those not ending in"[G]"), to columns 'B' & 'C' respectively. The code looks like this;
Range("B2:B" & Range("B65536").End(xlUp).Row + 1).ClearContents
Range("A2:A" & Range("A65536").End(xlUp).Row + 1).Select
Selection. AutoFilter Field:=1, Criteria1:="=*[G]"
Range("A2:A" & Range("A65536").End(xlUp).Row + 1).Select
Macro: Extract Data From Closed Workbook
I'm trying to create a macro that will allow me to extract data from another workbook (whose name and location is listed in a defined cell) and populate a range in my new sheet with this data.
Ideally, I want to be able to do this without actualy opening the source file, but any means to this end would be great!
I know this was possible in Lotus 123, but have not yet found a way to do it in Excel.
Macro To Extract/insert Data Then Delete Rows
I am working with a spreadsheet generated from software that keeps track of fuel usage for a large fleet of vehicles. The data comes out looking like the snapshot below.
I am trying to get the data into a more convenient format for analysis. I need a macro that will:
1) Take the text "Product summary for vehicle ID 0000****", extract the last 4 digits of the text, and paste it where the 1 is under the Product heading (a10). Those digits are the actual fleet number, and I need to separate them out from the rest of the text. The digits will change for each vehicle, so the macro should just move down the spreadsheet doing the same thing for each instance (the setup you see is repeated for every vehicle).
2) Once the first goal is accomplished, I would like the macro to then go back through and delete every row except for the rows with the pertinent data in them. So this means I would only want one row per vehicle and all rows would line up directly below each other like demonstrated below.
VBA Macro Code Needed To Run The Code Contained Within A Cell
I have a macro that, when run, needs to read the contents of cell B5, and run the code that it contains.
Cell B5, for example, would contain the text:
Range("B13").Formula = "SUM(D12:D14)"
I need a macro to "execute this code", as if it were in the macro itself.
I have assigned the above to a variable, but am not sure how to execute it.
the_calc = Range("B5").value
Now, how do I run the_calc ?
Macro To Extract Variable Info From Data Set And Calculate Corresponding Values
I have a small data set (ends up with 8 columns, up to 1000 rows), that gets imported sorted and formated via a macro linked to a button. I need to be able to look at one particular column of info, which will contain different text values every time the data is updated, and create a list of all the different values that occur in that column (maybe 10 max). Then...... I need to calculate a numerical value from adjascent column, linked to the text values from the first process. Below is an example to better explain:............
Efficient VBA Code Vs Macro Recorder Code
What is the most efficient VBA code for the following macro recorded codes? I wish to write more efficient code versus the lengthy, cumbersome macro recorder code.
1) Macro Recorder Code to Copy One Sheet to Another
2) Macro Recorder Code for Replacement Purposes......................
Macro Logic: Extract Higher/lower Values Based On Unique Cell
This is a logic based macro that needs to compare values in 1 column above a specific cell and take action until the column has no more data. Here's what I'm trying to do (and I've also attached a sample of desired results):
1) I want user to input starting cell. So I need to create a button for that.
2) This is where the logic begins and I'm having difficulty.
From cell defined in button, I move up one cell in that column and compare that value to the original cell.
If the value is greater than original cell then logic needs 2 outcomes:
a) move up 1 cell in column and if that value is less than original cell, then extract that value and copy that value one cell to the right or 1c.
b) move up 1 cell in column and if that value is greater than original cell, then move up again, until find lesser value than original cell. Once we find value less than original cell, extract value and copy value one cell to the right or 1c.
What Pages Are Not Seen
I have a website with lots of pages and I have a tool where I can see how many visits these pages get. What I want is to find out which pages didn't get any visits.
So I have in one column all the pages URL's on my site
In the other column I have all the pages URL's that have been visited, and in the column right next to it I have the amount of visits that page has received.
For example, this is what it looks like today:
row 1: /site/hello.htm
row 2: /site/how.htm
row 3: /site/are.htm
row 4: /site/you.htm
row 1: /site/are.htm
row 2: /site/hello.htm
row 1: 10
row 2: 20
Ideally the URL's that have been visited should show up on the same row as the URL in column A, and then for the ones that have not been viewed it will just be blank in column B and C.
so in the above case it would look something like this:
row 1: /site/hello.htm
row 2: /site/how.htm
row 3: /site/are.htm
row 4: /site/you.htm
row 1: /site/hello.htm
row 2: [blank]
row 3: /site/are.htm
row 4: [blank]
row 1: 20
row 2: [blank]
row 3: 10
row 4: [blank]
Speed Improvement - Macro Extract Higher/lower Values And Note Time Differences
I have a macro that needs a major improvement in performance. I have a Quad Core 2.67GHz single processor computer and with the current logic it calculates 20 values per minute. I have data sets that can be up to 400,000 data points, which means it will take 333 hours. The attached Sample file has over 9000 point. For this data set it takes 7.5 hours.
The core logic of the macro is to extract what I call “Break Point” into column M and “Time Difference” between the Break Points to column O.
I got the code from this forum (thank you DonkeyOte) and made some modifications. The modified logic does the following:
1) The user inputs the starting cell. In the Sample I use G200.
2) From cell defined in button, It moves down one cell in that column and compares that value to the original cell.
If the value is greater than original cell then there are 2 possible outcomes:
a) move down 1 cell in column and if that value is less than original cell, then extract that value and copy that value to the column M (Break Point value) and copy the Time Difference Value to column O. “Time Difference” is calculated as the difference between the 2 point breaks in Column A. In this case I’ve hardcoded 0.003472222 to get 5 minutes which matches up with each incremental time in column A, but I would like the Macro to automatically calculate that by the difference between Column A values.
b) move down 1 cell in column and if that value is greater than original cell, then move down again, until find lesser value than original cell. Once we find value less than original cell, extract value and copy value to column M and copy the Time Difference Value to column O.
Once lesser value has been copied to new cell, logic is now:
a) move down 1 cell in column and if that value is greater than original cell, then extract that value and copy that value one cell to column M and copy the Time Difference Value to column O.
b) move down 1 cell in column and if that value is less than original cell, then move up again, until find greater value than original cell. Once we find value greater than original cell, extract value and copy value one cell to column M and copy the Time Difference Value to column O.
At any point in the process if we find a value equal to the starting cell, we ignore it and the logic continues. The logic continues flip flopping like this to the last value of column G.
Here's the logic now in reverse I need:
If after moving down 1 cell of original cell, the value is less than original cell then logic has the following 2 outcomes:
a) move down 1 cell in column and if that value is greater than original cell, then extract that value and copy that value one cell to column M and copy the Time Difference Value to column O..
b) move down 1 cell in column and if that value less than original cell, then move up again, until find greater value than original cell. Once we find value greater than original cell, extract value and copy value one cell to column M and copy the Time Difference Value to column O.
Once greater value has been copied to new cell, logic is now:
a) move down 1 cell in column and if that value is less than original cell, then extract that value and copy that value one cell to column M and copy the Time Difference Value to column O.
b) move down 1 cell in column and if that value is greater than original cell, then move up again, until find lesser value than original cell. Once we find value lesser than original cell, extract value and copy value one cell to column M and copy the Time Difference Value to column O.
Again, at any point in the process if we find a value equal to the starting cell, we ignore it and the logic continues. The logic continues flip flopping like this to the last value of column.
Once all the Break Points and Time Difference between Break Points are extracted for each value in column G, the AVERAGE, STDEV and MAX values of column O are calculated in column Q, R and S.
There is a loop that controls the execution of the core logic until the last value in column G. In the macro I’ve hardcoded last row being 9171, but I’d like the Macro to figure out what the last row is automatically.
I know this description is a bit long but I’ve worked for many hours on getting it work properly. I just need some help to make it run much faster. I hope someone can help me out on this. I have the right logic, just need the speed now and I really can’t figure it out.
Attached is a sample files demonstrating showing how the logic to flips back and forth as moving down the column starting in cell G200.
The sample shows the results first 4 loops (Rows 200 to 203). The values in M and O are the results of the fourth loop.
Again, assistance is very much appreciated because I've taken this as far as I can with my limited experience.
EDIT - I can embed the Macro, but it'll probably much easier to actually see it in the sample file.
Is there a way to insert a cell/row, and add data to one page/tab, and have it automatically insert a cell/row and add the data on another page/tab?
Excel 2003 is the version I am using.
Formulas Between Pages
I have a formula that checks the previous page(Tab) for a figure so the formula goes =SUM(F37-'05-27-2007 thru 06-02-2007'!F37). Is there a way to instead of asking for the page '05-27-2007 thru 06-02-2007' to have it generically ask for the previous page?
Switch Tab Pages???
I have a user form that has several tab pages on it when the form opens it checks to see if the user has entered there default info if it is empty it needs to go to the default tab so the user can enter there info. How do I do this using vba in excel 2000 I have not been able to find any code that will do this if I use the set focus option for a text box on the tab page it comes up with an error saying the item is not visible! The user forme is names = UserDataInputForm. The tab pages I have are
1st = InputDailyTimesPage
2nd = OverTimePage
3rd = DataPage
4th = DefultDataPage
the form opens using the 1st tab page by default
in the user forms inisilisation code I have this check
Print The Selected Pages
There are 24 pages for printing and each one has different information on that sheet. From day to day some or all of the pages are needed. I would like the macro to look at each page and find a cell(different cell but same info on each page) and if the value of that cell is greater than 0 print that page. If not don't. I only need to calculate the "Bundle Tops" sheet. How do I write this. I am a beginner at the VBA code.
Collect The Data From Other Web Pages
I've been trying to familiarize myself with MS Excel's Web Query function (MS Excel 2007) in order to collect statistics from a baseball game.
Here is this particular page I'd like to start pulling certain data from: http://www.mmobaseball.com/stats.aspx
I can get the first page of data easily, the first 50 or so players and their stats, but I cannot get anything from the other pages (which are accessed by the 'next button') nor can I get the defensive stats of any player (accessed by clicking the button labeled "defensive stats"). When I look at the page source I see that regardless of the page I'm viewing, excel only pulls data from the original page.
How can I collect the data from these other pages?
Web Queries For Multiple Pages?
My question is about webqueries... specifically how to set up a query that will automatically fetch data on different pages (same data, but includes page 2, page 3, page 4, etc )
I've just figured out how to import a "new web query," but it seems like I won't be able to import 63 pages of it unless I do all of them by hand.
Sum Textboxes On Pages That Don't Exist Yet
How do I reference the values in TextBoxes on pages in a MultiPage form that have not yet been created?
I need to add all of the first TextBoxes values on each page starting with page 2 and place the sum into the first TextBox on page 1. And do the same with the second and third TextBoxes.
I have included a sample workbook to show what I am trying to do.
Hyperlink To Varying Web Pages
I have a spreadsheet that has different product codes that I want to link to their corresponding web pages.
At the moment I individually input the hyperlink into each cell using this common address http://www.ace-sales.co.uk/Catalog.aspx?search=25617 it is just the 5 digit code at the end that changes each time
Can I put a common hyperlink in all the product code cells, then just put the product code in the cell and then the hyperlink automatically links to products corresponding page?
Workbook With Multiple Pages
I have a workbook with multiple pages, two of which are labled "Summary" and "Questionnaire" On the Summary sheet, I would like to have a button or permanent dialouge box that asks the user if he wants to print the "Questionnaire" sheet. The button should have 2 options YES and NO. If they say Yes, change the contents of cell A2 on the Questionnaire page to "1". If they selct NO, make contents of A2 on the Questionnaire sheet to "0"
I have a macro that reads the contents of A2 on all sheets and prints if >o
Header For Continuing Pages
I have an Excel 2007 Workbook that is used to do a variety of different reports. Each spreadsheet within this Workbook is a different report. All reports need the same Header format that is linked with new data that is entered with each new report. The reason I need a header is because each report may vary in size from 1 page to 6 pages, it all depends on how much is reported on and a single completed report will use a combination of other reports.
Here below is a format that I am trying to achieve
(Linked Data) ‘Employee names located top center
Date: (Linked Data) ‘With Date: texted before link, located left index
Address: (Linked Data) ‘With Address: texted before link, located left index
Or should I just use
On Sheet1 as source to other sheets, but if I do this how do I use this like a header for continuing pages
Printing Pages Via Input Box
I having troubles getting a part of this script to do what I want and was hoping someone could point out what to try. What I need is when the user is asked to enter the amount of pallets. The number they input is placed into a cell.
Here is the problem.
I'm looking for a way to start at number 1 and work up to the number the user placed in the input box. For example if the user put 5 in the input box Range("F37") Would read 5 then in range("A37") the number would read 1. Then the page would print ,the next value in Range("A37") would be 2 ,then print and so on up to 5. So the end result I would have 5 pages that printed with the only differnce being Range("A37") Value being 1,2,3,4,5.
Auto Fill Into The Other Pages
I'm trying to set up a multi page report where some of the same information is repeated into a several forms. Is there a way I can set this up to where I type it into the one section and it will auto fill into the other pages I need the same information?
Compile 2 Lists On 2 Pages Into 1
Dim ColALen As Long, ColBLen As Long, ColCLen As Long
ColALen = Range("A65536").End(xlUp).Row
ColBLen = Range("B65536").End(xlUp).Row
ColCLen = Range("C65536").End(xlUp).Row
If ColALen + ColBLen + ColCLen > 65536 Then
MsgBox "Too Much Data to fit in One column"
Range(Cells(1, 1), Cells(ColALen, 1)).Copy _
Range(Cells(1, 5), Cells(ColALen, 5))
Range(Cells(1, 2), Cells(ColBLen, 2)).Copy _
Range(Cells(ColALen + 1, 5), Cells(ColALen + ColBLen, 5))
Range(Cells(1, 3), Cells(ColCLen, 3)).Copy _
Range(Cells(ColALen + ColBLen + 1, 5), Cells(ColALen + ColBLen + ColCLen, 5))
I'd like to do something similar, yet different. I have 4 columns on 2 pages that I'd like to combine this time around. I'd like to end up with this as my result.
Sheet1ColumnA Sheet1ColumnB Sheet1ColumnC Sheet1ColumnD
Sheet2ColumnA Sheet2ColumnB Sheet2ColumnC Sheet2ColumnD
Create Macro Code With VBA Code
I'm trying to add buttons to an excel spreadsheet at runtime. Each row in the spreadsheet should have its own buttons. I was able to create and edit them with the ActiveSheet. OLEObjects.Add() function, but after that, when i was trying to create code dynamically to react on the buttons' click events excel crashes (actually it works for one button, but not if my routine for adding a new button and event code is called more than once in a row!)
The code below works if the AddCmdbuttonWithCode() is called once, but crashes if it is called two or more times. Excel tries to restore the document after the crash and the first button and its corresponding click event code is visible and works... but NOT the second button and its event code...
The only way I can create multiple buttons right now is by calling my method once per click, opening the vba editor, changing the parameters for my AddCmdbuttonWithCode() routine and execute it again. After that I have mutliple buttons in different lines which all work fine (so the concept seems to work).
The problem seems to be the insertLine method, since everything seems to work if i leave it out (except for the code generation of course, since this is done by this part of the code :-) ). Is it possible that calling the insertLine Method can't be called multiple times? I don't know... any ideas? Feel free to test my code - it's small, easy to understand and has comments.
'this code calls the method which creates the buttons in specific cells with specific names
Private Sub CommandButton3_Click()
'the first call always works!
AddCmdbuttonWithCode "Edit_111_111_114", 23
'the second one crashes excel
AddCmdbuttonWithCode "Edit_111_111_115", 27
Creating A Persistent Format Across Several Pages
I'm essentially creating a basic table and I have my first page created exactly how I want it. Header, footer with page numbers, and the main page consists of a table with borders, column headers, and every other row highlighted. I'm making the table for a small company to record the results of equipment tests that they have to run every morning. What I need it to do is to keep that format on every new page that gets activated. The users of this particular form that I'm making are not particularly computer savvy, so asking them to recreate the table everytime they need a new page would be asking quite a bit.
Creating Multiple Pages From A List
I have a list of approx 600 locations with codes that I want to populate into individual worksheets.
For example, the list (in excel) has the following
NEW YORK 12345 WW012
NEW JERSEY 23456 WW013
PENN 34567 WW014
(Each field is in it's own column)
The other worksheet is a template where the Site Name, codes would be placed is specific locations, one site per worksheet.
Is there a macro that can create one sheet per site with the proper information?
Unique Numbering Of Pages When Printed
Would it be possible to have a unique number appear on every indivually printed sheet?
My worksheet in Excel fits onto one sheet of paper and I would like a unique number to appear whenever I print, even after closing system and re-opening file at a later date (the last printed sheet is 'remembered' so the next printed sheet is the next number in sequence).
So the first time I print a batch of say 100 I would have 100 x identical pages EACH with a unique number, i.e., '0001' to '0100'. The next time I print another 50 say, I would have '0101' to '0150' and so on.
Printing Multiple Pages On One Page
I have a list that I need to print. It is only 2 columns, but 12 pages long. I would like to print 4 or 6 pages, side by side on the same sheet. I tried changing the print setting to 4 pages per page. But, when I looked at the print preview, it showed only 1 page per page.