**Excel / Visual Basic Expert Wanted!** We currently have an Excel workbook whose purpose is to generate a series of text files. Some tasks are automated, but much of the work is manual, and even the automation components were added relatively recently, so there's much room for tedium and error. We need to replace this entire method of generating these text files with one that is far more automated.
This bid request covers the first of three very similarly-sized projects, each needing a very similar set of skills. In all likelihood, if you do a good job with this project, we'll invite you to complete the other two, as well.
This part of the conversion replaces the current method with one which is more automated, by generating the files directly from the raw data, rather than the current method of maintaining partially-generated files.
We will need a new Excel spreadsheet, Feed [url removed, login to view], with three pages (tabs): The first is called Products, and this will contain several hundred products, each with thirteen attributes, (one per column), and sorted by Category, Manufacturer, Product Number, and Alternate Search Keyword. After those thirteen columns and a separator column, there will be seventeen columns, one per advertising partner. A "1" in one of those columns means that a given product should be represented in the corresponding data feed text file for that advertising partner, and a "0" (or blank) means that it shouldn't.
The second page is called Control, and will contain all of the business rules needed to build the seventeen data feed text files. There is a button labeled "Generate Data Feeds", which will loop through all ad partners, and then through all products as follows. For each ad partner, the third page, called Staging, will be completely cleared, and then a predetermined row one (i.e., headings) will be placed there without any modifications. The code will then loop through all products, and each one that has a non-zero value in the column for that ad partner will need a row representing that product, with up to 17 columns, added to the Staging page. The business rules to do this are already written, are very well defined, and typically require very little manipulation, such as simple appending or addition of two other fields. e.g., The tenth column of the Froogle ad partner data feed is built by prepending a constant to an attribute field: ="US:GROUND:" & TEXT(Q_Shipping,"0"). After the Staging page is filled with all products for that ad partner, the data is written to a flat text file. (The format is called "CSV", although the separator between columns is typically a tab, not an actual comma.) Once the data has been written to the file, the Staging page should be completely cleared. The above paragraph can be represented by the following pseudo-code:
for (all ad partners)
Clear Staging page.
Set row one of Staging for this ad partner.
for (all products)
if (Products[this product][this ad partner] > 0)
Add row to Staging as per business rules.
Write Staging data to flat text file.
Clear Staging page.
It should be relatively trivial for new ad partners to be added in the future. No limits should be hard-coded with numbers, e.g., There should be an "end-of-list" marker after the last ad partner rather than any hardcoded "17". All code should loop through arrays for all operations, rather than have any portions repeated 17 times. Ideally, the code should not have to change at all when ad partners are added or deleted in the future.
* * *I'm pretty flexible and easy to work with. I tried to make sure that this job is as completely specified as humanly possible.
If you have **any** questions, *please* ask them! I have found that it is far better to risk a bit of embarrassment than to spend time working on an assumption which later proves to be wrong. Do not worry that a question may seem silly; just *let me know* and I will be very happy to answer you!
We've been a Buyer here since July '05, with a rating of 9.9 ("Excellent") out of 10, with over 75 ratings, and we've now paid on over 95 jobs. We've completed both security verifications, we have a non-action ratio under 5% ("very good"), and we've lost 0 out of 10 mediations / arbitrations.
| ! | PGP is **not** required for this project. |
| ! | An NDA is **not** required for this project. |
We will retain full legal rights to the code and/or data upon completion. All code and/or data is and becomes *our* intellectual property! You will *not* have any rights to the code and/or data in any fashion.
**Thank you for your consideration and for bidding through RentACoder!**
* * *Copyright © 2007, RentACoder Buyer
[notecom]. **All Rights Reserved.** Reproduction without permission is strictly prohibited.
* * *
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).