Welcome to my Excel VBA Channel. My name is Paul Kelly(Microsoft MVP) and I'm here to teach you how to write Excel VBA for the real world.
This channel will teach you proven techniques and little-known secrets about Excel VBA. These are techniques and secrets that I have used myself for over 20 years as a professional software developer.
In these videos, I break down complex Excel VBA topics in simple terms. I explain each part with code examples. Then I show you how to put it all together with real-world coding examples.
You can check out free articles on my Excel VBA website. This website receives well over one million visitors a year. excelmacromastery.com/vba-articles/
I currently have the following training available: ☛ The Excel VBA Handbook course: theexcelvbahandbook.com/ ☛ The Webinars Archives Membership: excelmacromastery.com/live-webinars/
Great tutorial! Wondering, is there a technical reason you use functions and arrays outside of the Userform to populate your combo boxes instead of Rowsource?
Thanks. Very didactic. Nerver thinked about using find this way. One cave at with find is hidden rows and hidden columns. If you have some of them find just seems to ignore them.
How to use xlwings in wsl system please give me a source code and instructions step by step , xlwings documentation in write xlwings server using Linux, wsl and Docker but not show how to use
Dude - I've been writing VBA (mostly Access VBA) for years. Your videos have been an eye opener for me. I've basically went back and changed all of my "macros" and added your suggestions. My Excel macros now run much faster thanks to your suggestions. I'll make sure to watch your videos as much as I can. Again, THANKS!
Hi, thanks for this, question, how would I force only xlsb when the user want to save as a file, I want the dialog picker or with 365 only show xlsb to show, this was possible before 365 but don't know how to do it in 365
I followed the ReadFromAPI() macro. I have the required tools. Nevertheless when I clicked on Debug the first time, after (minute 9:02) I already had the scripting runtime checked but got an error anyway. However, I went ahead and added the Jsononverter.ParseJson(request.Response.Text), I did not get a run time error. I then entered the remained of the code and clicked on debug. I got the error Run-time error 424 Object required. The debugger stopped on the Set countries = response("Country"). I can't determine the cause of this error. Can you help?
I finally get it. The other examples I've seen of this were only storing 1 data item per row in the collection (e.g. Name) so it wasn't clear why using a class was a benefit. Now that I see you can store multiple data items it makes sense. I guess if you were working with multiple classes you could store that as dimensions in an array?
One of my bugbears in life is processes that still involve the extraction of data from one system via pdf that some poor soul has to get into another system - amazing that this still happens in 2024! I have a specific use case where I used to use Able2extract to convert pdf to excel for monthly accounts. However, there was still a fair amount of manual processing to fix. Then my computer dies and I switch to an ARM based surface pro that cannot run Able2extract. So I find that Adobe has a reasonably priced pdf to excel that actually works better in that it maintains row integrity. Over to ChatGPT. I used a different process which was less structured. Rather than plan my code out in detail I was a bit lazy and had ChatGPT build it up step by step. In each iterations I found problems to do with either my specs or ChatGPT, but I just fed back the issues to chatGPT (eg. line of code causing error) and ChatGPT pu,mped out revised code. I think I halved my coding time and ended up with a very fast sub using arrays. Error resolution was far faster with ChatGPT. However, I did not add proper error trapping so the code probably does not meet commercial standards. ChatGPT is a far faster alternative than googling. I also like that ChatGPT forced me to define my problem unambiguously. Overall, I am astounded at what ChatGPT can do and I do think it is going to change the world of coding. I think productivity will increase dramatically in the coding business.
Dear Excelmacromastery, I'm a big fan of your channel and have learned a lot from your videos. I'm currently working on a project that involves creating a user form in Excel, and I'm facing a challenge. I'd like to add maximize and minimize buttons to the user form, but I'm unsure how to implement this functionality. Would you be able to offer any guidance or point me towards relevant resources? Thank you for your time and continued support!
Hello, thank you for this helpful video. But I have a question based on your example. What if I Need the data for those who has quantity more than 2 but less than 8? How can I set the criteria?
Месяц назад
Using the Let and Get methods for Userform properties is a game changer, thanks for sharing this tutorial
Месяц назад
thank you, i found this video very useful, now i feel the urge to learn how to write elegant code
Hi! Error 50290 worked around? I can recreate the error by opening a drop down list and while it is open, click on a macro that takes me to a different sheet like shData.Select shData.Range("A1").Select Works unless dropdown list in cell is open. 50290 Error occurs. Any workarounds?
To make shape macro not bug out when drop down list is open, I effectively coded my own double-click for macro shapes in vba. Never found a single video to do so. Static, if Long = 1 then subtract 1, Mytime = hour(time) * 60 + minute(time) * 60 + second(time) exit sub elseif long = 0 then add1, mytime2 = same formula as mytime, Timediff = mytime2 -mytime end if If my time greater than 1 then exit sub Elseif timediff less or = To 1 then Call sub end if. That's my solution.
Pro as usual. btw I believe you can do it even faster with the "evaluate" VBA function. no loops and it does the calculation for all the range ows at once.
You have some great video's. If I can give you a little constructive criticism, you should pan out and pause for a few seconds before switching windows (So we can see all of the code). I'm trying to follow along and write the code along with the video. I will be writing out a line and all of a sudden you switch screens. I have to back the video up or catch the code the next time you switch back to that screen. I am a beginner and I'm not as fast as you. Keep the videos coming.
How do you then access the properties of another For example of I wanted the user to type in textbox2 and the value appears in textbox1. I want to use similar experience, I created buttons when a user hovers over it, it changed color and when exits it goes back to the original color, I wrapped a textbo around the button to capture mouse movement when the user exits the button but this textbox can't change the properties of the button when in class module