Tuesday, June 15, 2004

An order book don't come for free

"It was sposed to be so easy"

Just update the pricelist database, insert an extra column in that spreadsheet and get a glass of orange from the fridge.

Step one, the pricelist. What did I do with the print outs of the things she wanted changing? They're not in my briefcase, not in my folder. Perhaps I can find them in my email? Where are the buggery bollocks are they?

They're tucked inside my notepad.

Ok, lets start on this, but first I'm just going to check my email and maybe I'll get a snack to eat.

Ok, I'm definitely going to do it now, and I need to look at how I'm going to restructure it. What did I do with my notes on that? Ah, in my task list.

Here we go.

Oh, bugger - a phone call - better answer it.

It's Eileen.

"Can you just put an extra column in the order book spreadsheet so we can break it down by products and services?"

"Yep, no problem"

Except it is. There's a whole lot of macro code that's using absolute column references rather than named ranges. Is there an easy way to do a global update? No, and I've just changed every 'J' in the code to a 'K'. Get the original version back and try again.

Call Eileen and tell her it's more complicated than I first thought.

"That's ok" she says, "We don't use those macros anyway. We just use the ones on the other sheets to extract the new and amended lines"

"That should be straight forward then"

Except it isn't. I put the extra column in on the front sheet and the two extract sheets, click the button and it only copies half of what I was expecting.

Open up the visual basic editor and try and follow what is happening. It makes no sense whatsoever. What are all these references to absolute rows and why is it copying it one cell at a time rather than in chunks?

Time for a drink of orange from the fridge. I reach for the jug of squash on the top shelf and catch the light switch, spilling a significant amount.

Squash now starts dripping down every shelf in the fridge.

Unpack the whole fridge, take the shelves out, drip orange on the floor, wash the shelves in the sink, wipe the floor, it's still sticky so spray some floor spray on and wipe it again, wipe the bottom of every jar, bottle, yoghurt pot, margarine tub and milk carton and put them back.

Pour a glass of squash. Drink.

Look at the code again and set some breakpoints to step through it. Oh, I get it - he's looking at some hidden rows to check the format that each cell should be and when I've inserted a column I've missed a marker that it was expecting hence breaking the control loop. Well, that's all very clever but without comments it is impossible to follow without a great deal of effort.

Unhide the rows, decode the markers the code is expecting, rehide the rows and test.

Success on a plate!

Email to Eileen for testing and wait for a reply. Perhaps I can blog this while I'm waiting, and then I can have a look at the pricelist database again.

"Today I have achieved absolutely nowt ..."

No comments: