Web Query
Hi,
I use to get the web data on button click with the codes provided by Dave. No i would like to modify the codes as per users request. If the innertext value of 4th column of HTML table is already available in the extracted sheet then code should skip the row & go for next row of html table something like if ......... then exit for else. For ready reference some of the codes provinding here For Each mRow In mTable.Rows iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next If mCell.innertext value already available then exit for -- Thanks, Vikram P. Dhemare |
Web Query
Indexing on the webpage starts at 0 so the 4th column is index 3 For Each mRow In mTable.Rows if mRow.cells(3) < rBase.Offset(iRow, 4).Value then iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next mRow -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=199824 http://www.thecodecage.com/forumz |
Web Query
Thanks Sir,
But I am looking for the answer which can find the HTML Cells(1).innertext of each row, in a worksheet, if found then go for next HTML row if does not found then copy the value & paste in that sheet at last filled row. for Example: With Wks iRow = .Range("A" & Rows.Count).End(xlUp).Row End With End If For Each mRow In mTable.Rows With Wks Set rngC = Columns(1).Find(What:=mRow.Cells(1).innerText, _ LookAt:=xlPart, LookIn:=xlValues) End With If Not rngC Is Nothing Then Exit For Else iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 End If Next iRow = iRow + 1 End If Next mRow Any help will be highly appreciable. -- Thanks, Vikram P. Dhemare "joel" wrote: Indexing on the webpage starts at 0 so the 4th column is index 3 For Each mRow In mTable.Rows if mRow.cells(3) < rBase.Offset(iRow, 4).Value then iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next mRow -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=199824 http://www.thecodecage.com/forumz . |
Web Query
I ould reverse the procesess you are using. span the webpage then use find to locate the row and column of the worksheet. Something like this For Each mRow In mTable.Rows ColCount = 0 For Each mCol In mRow if ColCount = 0 then RowHeader = mCol Else ColHeader = mTable.Rows(0).cells(ColCount) With Wks Set rngC = .Columns(1).Find(What:=RowHeader, _ LookAt:=xlPart, LookIn:=xlValues) if not rngC is nothing then Set rngR = .Rows(1).Find(What:=ColHeader, _ LookAt:=xlPart, LookIn:=xlValues) .Cells(rngC.Row,rngR.column) = mCol.innertext end if End With End if ColCount = ColCount + 1 next mCol next mRow -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=199824 http://www.thecodecage.com/forumz |
Web Query
Not getting the desired report., Values returns blanks. -- Thanks, Vikram P. Dhemare "Vikram Dhemare" wrote: Hi, I use to get the web data on button click with the codes provided by Dave. No i would like to modify the codes as per users request. If the innertext value of 4th column of HTML table is already available in the extracted sheet then code should skip the row & go for next row of html table something like if ......... then exit for else. For ready reference some of the codes provinding here For Each mRow In mTable.Rows iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next If mCell.innertext value already available then exit for -- Thanks, Vikram P. Dhemare |
Web Query
Without having access to the webpage and the complete code I can't dubug the problem for you. I added some message boxes to the code below. I think your problem may be the row and column headers on the worksheet don't exactly match the ones on the webpage. You may have extra spaces, other white characters in the headers ( webpage or worksheet), or some of the characters may be capitalized. Sometimes adding a TRIM or forcing all the the to UPPERCASE using the function UCASE solves these problems. VBA Code: -------------------- For Each mRow In mTable.Rows ColCount = 0 For Each mCol In mRow if ColCount = 0 then RowHeader = mCol Else ColHeader = mTable.Rows(0).cells(ColCount) With Wks Set rngC = .Columns(1).Find(What:=RowHeader, _ LookAt:=xlPart, LookIn:=xlValues) if not rngC is nothing then Set rngR = .Rows(1).Find(What:=ColHeader, _ LookAt:=xlPart, LookIn:=xlValues) if rngR is nothing then msgbox("Row Header : " & RowHeader & vbcrlf & _ "Column Header : " & ColHeader) else .Cells(rngC.Row,rngR.column) = mCol.innertext end if else msgbox("Cannot find row Header : " & RowHeader) end if End With End if ColCount = ColCount + 1 next mCol next mRow -------------------- -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=199824 http://www.thecodecage.com/forumz |
All times are GMT +1. The time now is 01:09 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com