Getting Web Page Source (html Or Xml) In Vba? |
Getting Web Page Source (html Or Xml) In Vba? - Excel |
|
Later, I would chop, cut, parse or extract the data I need.
Both importing as XML or WebQueries is unsatisfactory for a certain number of pages I need. XML has bad schema, WebQuery tells me it can't find any data.
I tried with WinHTTPRequest, but Excel gives me back error "undefined user type" in other words it doesn't recognize that object.
Basically I want the source of web page to become a string in my VBA code. In other words that would be replication of funcionallity of Code:
urldownloadtofile http://anywebpage.com/index.html anyfile.txt
which is provided by AutoHotKey scripting language (if anyone used it, very simple and effective for many things).
Can it be done in Excel's VBA?
Similar Topics
The problem is I can use code such as
strHTMLText = ie.Document.body.innerText
or
strHTMLText = ie.Document.body.outerText
to retrieve the code, but in either case only part, not all, of the source code is captured. I need ALL the code. Is there some kind of code such as ie.Document.body.allText or similar that would perform this function?
Much obliged!
to display the data formatted. Right now I get all the ugly html codes, like
<b> Hello World</>.
Thanks - John
Firstly i haven't used excel to a great extent since my college days. So i'm having to re-learn 99.9% of everything i once new...
I am volunteering for a non profit organization and trying to create a reservation system for the rooms that they have - kind of like hotel software, but in excel (i did a similiar thing in college but for plane seats)
Please find it attached.
What i need it to do:
Copy all of the info from the main page to the guest lit (a new row each time).
From the guest list to the Gannt chart - i did a few tutorials on dynamic gantt charts using conditional formatting but cannot get them to work when based on data on a different worksheet.
Finaly is there a way to check for availabilty on any given date?
if just someone could point me in the right direction, i would be appreciate it so much words can't express!!!
Best Regards,
Jamie
P.S for the calender drop down on the main page, i'm using 'microsoft time & date picker 6.0)
http://www.2shared.com/file/6521961/...ibsV05b32.html - pop ups on this site
http://www.easy-share.com/1906519167/RibsV0.5b3.2.xlsm - same file, better website
For 19,999 it show
Ringgit Malaysia : Nineteen Thousand Nine Hundred NinetyNine Only
For 20,000 and above it show
Ringgit Malaysia : Thousand Only
Code as below:
Function SpellNumber(amt As Variant) As Variant
Dim FIGURE As Variant
Dim LENFIG As Integer
Dim i As Integer
Dim WORDs(19) As String
Dim tens(9) As String
WORDs(1) = "One"
WORDs(2) = "Two"
WORDs(3) = "Three"
WORDs(4) = "Four"
WORDs(5) = "Five"
WORDs(6) = "Six"
WORDs(7) = "Seven"
WORDs(8) = "Eight"
WORDs(9) = "Nine"
WORDs(10) = "Ten"
WORDs(11) = "Eleven"
WORDs(12) = "Twelve"
WORDs(13) = "Thirteen"
WORDs(14) = "Fourteen"
WORDs(15) = "Fifteen"
WORDs(16) = "Sixteen"
WORDs(17) = "Seventeen"
WORDs(18) = "Eighteen"
WORDs(19) = "Nineteen"
tens(2) = "Twenty"
tens(3) = "Thirty"
tens(4) = "Fourty"
tens(5) = "Fifty"
tens(6) = "Sixty"
tens(7) = "Seventy"
tens(8) = "Eighty"
tens(9) = "Ninety"
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
FIGLEN = Len(FIGURE)
If FIGLEN < 12 Then
FIGURE = Space(12 - FIGLEN) & FIGURE
End If
If Val(Left(FIGURE, 9)) > 1 Then
SpellNumber = "Ringgit Malaysia : "
ElseIf Val(Left(FIGURE, 9)) = 1 Then
SpellNumber = "Ringgit Malaysia "
End If
For i = 1 To 3
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
Ntow = Ntow & tens(Val(Left(FIGURE, 1)))
SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
If i = 1 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & " Crore "
ElseIf i = 2 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & " Hundred "
ElseIf i = 3 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & " Thousand "
End If
FIGURE = Mid(FIGURE, 3)
Next i
If Val(Left(FIGURE, 1)) > 0 Then
SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 1))) + " Hundred "
End If
FIGURE = Mid(FIGURE, 2)
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
SpellNumber = SpellNumber & tens(Val(Left(FIGURE, 1)))
SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
FIGURE = Mid(FIGURE, 4)
If Val(FIGURE) > 0 Then
SpellNumber = SpellNumber & " And Cents "
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
SpellNumber = SpellNumber & tens(Val(Left(FIGURE, 1)))
SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
End If
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
If Val(FIGURE) > 0 Then
SpellNumber = SpellNumber & " Only "
End If
End Function
I have some experience working with advanced filter for things like >100 but that's about it. Any help with this would be so appreciated.
I have a spreadsheet with some cells setup with a drop-down list containing
Y, N or N/A
This is being used on a TabletPC but if I make a mistake or need to change
back to a blank field I have to invoke the soft keyboard, activate the cell
and hit backspace then close the soft keyboard - quite a long-winded
procedure just to change an incorrect choice!
What I would like to do is add a blank to the list so if I have to revert
back to a blank I can just use the stylus to choose a blank from the chooser
list.
How do I add the option of inputting a blank from the Data Validation List
bearing in mind I am using the Data Validation Source box for entering my
choices directly and not specifying a range of cells?
I have tried adding "" and even a space to no avail.
Although not a betting man I would wager there is a simple 'fix' for this
but things are only simple if you know how in the first instance! ;^)
--
Thanks & regards,
-pp-
Code:
Private Sub btn1_Click() UserForm1.PrintForm End Sub
This prints out the userform as I would like, however it autoprints to the default printer and doesn't allow any printing options so I can't select to "print to one page". So as of now it is only printing out half my form and cutting off the rest.
Any suggestions?
Im using :
'wait until the page loads
Do While ie.Busy Or ie.readyState READYSTATE_COMPLETE
DoEvents
Loop
This doesnt seem to work well enough, since actions are occuring that should NOT occur until the browser is ready.
Any other ideas as to how to make IE wait until the page is completely ready? I wondered about possibly checking the .innerHTML to verify that a unique page element is present.
Thanks,
Scott
I have the below code which deletes all items from a listbox and my excel sheet which is the source for populating that listbox. I am using a option button style for my listbox and the selection style as single .i.e. you can select only one item at one go in the lisbox. I want my macro to delete the selected item from my worksheet .i.e. it's entire row so that it doesn't reflect in my lisbox any more. Below is my code :
Code:
Private Sub CommandButton2_Click() 'REMOVE SELECTION Dim I As Long With ListBox1 For I = .ListCount - 1 To 0 Step -1 If .Selected(I) Then .RemoveItem I Sheets("URL List").Rows(I + 2).EntireRow.Delete End If Next I End With End Sub
Thanks a lot for your help in advance.
http://www.xcelfiles.com/VBA_Quick13.html
http://www.mrexcel.com/archive2/75500/87639.htm
Taxstar
I am copying charts to display the same information for different regions. When I work on the copied region, I find it a cumbersome task to go through each charts source data and change the cell references to the different region. Essentially I am doing a trending analysis for each region, with a region having its own sheet with 5 charts per sheet. What I have done is copy the original sheet and am updating the sheet for another regions source data by going to the source data. The source data is all in the same row/column format, but each regions source data has its own sheet. Is there a more automatic way to do this? Perhaps a way to update all 5 charts references at the same time.
Sub OpenPDF() 'Dim pdf As String On Error Resume Next 'pdf file to open pdf = "K:\PDF\mypdf.pdf" 'open the pdf file ActiveWorkbook.FollowHyperlink pdf End Sub
So then I tried to create an instance of acrobat by setting a reference to the acrobat object but I can't get this to work either!
The code I'm using is Code:
Sub OpenPDF() Dim pdf As AcroPDDoc Dim strPDF As String Set pdf = CreateObject("AcroExch.PDDoc") 'pdf file to open strPDF = "K:\PDF\mypdf.pdf" 'open the pdf file pdf.Open strPDF End Sub
Any ideas what could be wrong with either approach?
Thank-you
I need to look up data from a cell on one Excel sheet, compare it to a list on a 2nd sheet and when they equal, take a value from a different column on the 2nd sheet and drop it back on the 1st sheet. Since that's a horrible explanation, let me try explaining it this way:
Sheet 1
Column A has a long list of code type 1s
Column E has a long list of code type 2s
Sheet 2
Cell C2 has code 1
Cell E2 needs code 2
I know it should take an index/match function, but nothing I try is working. What I'm trying is the following formula in Cell E2 of sheet 2:
=INDEX('Sheet 1'!A:A,MATCH(C2,'Sheet 1"!E:E,0),5)
But all I get is no result. What's driving me bonkers is that if I copy everything over to a single sheet, that formula works fine.
an object, I see how I can "lock", "size and move with cells" or "not
move with cells". No matter what I select, the object moves off the
screen, when the user, scrolls to the right of the spreadsheet.
Is there a way to lock the position, let's say , in the upper right
corner and have it stay there?
This would be quite useful for an EXIT button, that I have created,
that will close the program without saving (it's a read-only file.)
Thanks to all the wonderful people here that have been so helpful and
give us their valuable insight and time.
Jo
Basically I want to export data from excel worksheets to various places on a word document I had. I have created a word template as well as bookmarks for that template, as that seems to be the recommendation for performing such a task with excel.
My problem is ... Now what?
I basically have 1 constant worksheet that contains all my affiliates info (Name, Address etc), which i'd like to use to populate some bookmarks in my word template, and then i have another worksheet for the previous month, indicating sales etc for that affiliate. I intend on adding a new worksheet every month that i would use to create new invoices.
Furthermore, i'd really like to be able to update a new file (or perhaps a new page on the same file) for each company with the use of a button, similar to the one's you'd see in an access form.
Can anyone help? Let me know if you need me to clarify.
Thanks!
Matt
As the title goes this is as simple as it gets. The macro worked good when I was using excel 2003 but now that I have 2007 everything works for except the resizing (Picture.Width & Picture. Height).
Code:
Sub AddImage() Dim strPath As String Dim strFile As String Dim Picture As Object Dim Response As String Dim C As Range strPath = "C:\\Photos\" For Each C In Range("A1", Range("A65536").End(xlUp)) If C 0 Then With C.Offset(0, 1) Set Picture = Nothing On Error Resume Next Set Picture = Sheets("Raw Pix").Pictures.Insert(strPath & C.Value & ".jpg") Picture.Top = .Top Picture.Left = .Left Picture.LockAspectRatio = msoTrue Picture.Width = 157 Picture.Height = 138 End With End If NextC: Next C End Sub
I have tried to record some macros while I am resizing the pictures but to no avail the macros are blank.
Please help
Thanks!
I have the AutoOpen code that starts things off, and then, in turn, loads the UserForm with the fields that need to be populated.
I can't figure out how to route the user back to the UserForm, to enter the 'missed' data.
We all know we can change the source of a link of the workbook by clicking Edit>Links>Source>change source but that will change the source of all workbook formulas which are linked to a certain file, what about if i need to change the source of a single sheet? is this possible?
I appreciate your support.Thank you !