Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

VBA to fill-in web form

Posted on 2014-11-08
10
Medium Priority
?
159 Views
Last Modified: 2014-11-22
We buy a lot of items at Sam's Club.  I wrote an Excel VBA program to keep track of the inventory, and to automate the purchase of items. A couple of days ago they change something on the site.  Looks the same, but the coding is different.  If you look at the front page, you'll see a search box and a magnifying glass next to it that works as a search button.  It is the search button we cannot click programmatically.  Any ideas?
And before someone asks, no, Sam's Club does not have an API for placing orders, and they say they have no intentions of creating one.
0
Comment
Question by:rrhandle8
  • 5
  • 5
10 Comments
 
LVL 46

Expert Comment

by:aikimark
ID: 40431550
please post the code that you currently use
0
 

Author Comment

by:rrhandle8
ID: 40440808
Code is attached.

I got it to work by adding the two lines that start with "-->"
SamsClub-sample.txt
0
 
LVL 46

Expert Comment

by:aikimark
ID: 40440828
What data is in column A of your Items worksheet?  Just want to see one or two examples.

I think your code is overly complicated because you're using IE
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:rrhandle8
ID: 40448895
Suggestions to using IE?
0
 
LVL 46

Expert Comment

by:aikimark
ID: 40448902
please give me some examples of what is in column A of your worksheet.
It looks like you're just putting the URL if the search succeeds.  Am I reading this wrong?
0
 

Author Comment

by:rrhandle8
ID: 40448944
Item#
13433230
14484656
15574090
15667515
15870476
15905012
16130065
80005208
0
 

Author Comment

by:rrhandle8
ID: 40448969
aikimark,

I got it to work with the following changes on these lines. I think it was the extra pause that did the trick.
So, what is a faster way to do this than using IE?

        ie.Document.getElementById("searchBar").Focus    'get the focus point of the input box
        Func.PauseBrowser
        SendKeys "~"    'do search
        Func.PauseBrowser

Open in new window

0
 
LVL 46

Expert Comment

by:aikimark
ID: 40448972
I manually searched for those items and nothing was returned.
0
 

Author Comment

by:rrhandle8
ID: 40448979
Old items.  I didn't know we were going to do a search on them.  Here are some active ones.

34488
196449
242249
341375
571453
651234
747192
995786
999999
0
 
LVL 46

Accepted Solution

by:
aikimark earned 2000 total points
ID: 40453072
This is an interesting problem.  The codes you are searching are a mix of Sam's specific and general (Walmart) values.  If your worksheet contained the Sam's values, the MSXML2 object is the desired solution.  It has less overhead and is faster than the IE automation solution.  Unfortunately, I haven't been able to find a good combination of URI keywords that will yield reliable results for non-Sam's values.  The best thing to do would be to accept your own comment, http:#a40448969 , as the solution.
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
After seeing numerous questions for Dynamic Data Validation I notice that most have used Visual Basic to solve the problem. This suggestion is purely formula based and can be used in multiple rows.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

963 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question