Diddi/Jon,
I agree with both of you. VBA can be an essential timesaver, but far too often people try to do in VBA what they can do natively. A prime example is Pivot Tables.
I didn't even start to learn code until I'd used Excel for over 5 years, and I'm still learning.
Yup mine was a 5 year wait at least too. Of course I agree that VBA is hugely powerful and I am so pleased that I invested the time into VBA that I did. And I'm also very grateful to the many members here that have invested their time in my learning. I've learned alot from Smitty and many others, but not just the MVP's here. There are hundereds of others that I have learned from.
But in my experience almost all capable VBA developers went through a phase that I call "a dangerous VBA developer phase". When I teach Excel/VBA I also call it the "****y phase". I don't have PEDII to hand but I like the way they summarised the phases. One of them was a phase where the developer sees every problem as needing a VBA solution. I absolutely hate seeing projects with copious modules and code where native functionality would have been a much better option.
The problem is so often people who learn VBA invest just about enough time studying it that they never mature beyond that phase. That's one of the side-effects of VBA being mostly a "self-taught" programming language. Most never embark on any form of study of
proper programming practices. Learning methods and functions is not enough... Or on the other side of the spectrum I sometimes see people from a programming background start developing in VBA yet many don't invest the time to properly study the Excel Object Model and discover the native functionality that Excel offers. In these cases again you see buckets of code (usually structured somewhat better), but where VBA is used to solve problems that a pivot table etc. could easily solve.
Sorry if I sound like the sceptic here, but in my experience 90% plus of people that I meet in companies (that I have worked for or consulted to) should not be allowed to employ VBA in their projects. That is, not without proper training. These days I steer well clear of projects where I need to adapt or inherit someone elses project; it's often just so much quicker to learn the requirements and start from scratch... There are plenty of people on this forum that I would happily work with and be happy to inherit their projects, but unfortunately (again in my experience) most people I meet through my work have never heard of MrExcel and never contribute to any of the Excel/VBA forums. I honestly don't think books are enough and most VBA training programs I see out there are hopelessly inadequate. Even forum lurking isn't enough - you gotta get stuck in and tackle problms that you find challenging. Learning VBA (and the programming discipline) takes months/years, not 2-3 days...
Like Smitty, after many many years, I'm still learning. These days I find less time to devote to the discipline (due to work loads and other hobbies), but I try and keep active enough to keep on learning.