در مینی پروژه ساده با حلقه Do While - Loop یک کار کنترلی را یاد خواهیم گرفت، مثلا اگر در حلقه، عدد تولید شده از عدد 15 کوچکتر و یا مساوی باشد بیاد یک مقداری را برگرداند و در Debug عدد را Print کند.این عددی که گفتم در نتیجه چرخش حلقه بوجود میاد و تابع While شرط را بررسی می کند و در صورت برقراری شرط حلقه را متوقف می کند.
در این پروژه کوچک، متغییری به نام n داریم و در ابتدا به آن مقدار 0 را می دهیم:
n=0
در خط بعدی کد بررسی شرط را می نویسیم که بیاد عددهای تولید شده را که به متغیر n می دهد را بررسی کند:
Do While n <= 15
و اگر شرط بالا برقرار نباشد حلقه به کار خودش ادامه می دهد و در ادامه حلقه درستور ذیل اجرا می شود و آن هم افزودن عدد 3 به مقدار قبلی متغیر n است و هر بار که حقله تکرار می شود اگر شرط برقرار نباشد عدد 3 به مقدار قبلی n اضافه می شود:
n = n + 3
و این Loop است که موجب چرخش حلقه می شود و در ادامه، با اتمام حلقه، آخرین مقداری که به n داده می شود را در Debug چاپ کرده که در صفحه Immediate Window نمایش داده می شود
و در این پروژه عددی که حاصل محاسبه دستور نوشته شده است مقدار 18 است و با اجرای آن در یک فایل اکسل براحتی به جواب دست پیدا خواهید کرد.

برچسبها: vba, excel, Coding, برنامه_نویسی_در_اکسل
در فایل های اکسل گاهی جداولی با داده های بسیار زیاد برای آنالیز و مطالعه اطلاعات به دست ما می رسد و برای تهیه گزارش هایی از جنس آنالیز مجبور هستیم بر مبنای نوع فرآیند تهیه گزارشها، از گزینه های برخی ستون ها لیستی تهیه کنیم و راجع به آنها محاسباتی را انجام دهیم و ممکن است این نوع گزارش ها در طول سال تکراری باشند و ما مجبور شویم هر سری فایل حاوی اطلاعات دستمان که رسید از اول تمام فرآنید تهیه گزارش را طی کنیم و این وقت و انرژی زیادی را از ما می گیرد. لذا برای رفع چنین مشکلات دست و پا گیر می توانیم گزارش های پرتکرار را به صورت قالب گزارشی در اکسل بسازیم و با روش های بسیار متنوعی از جمله ابزارها، فرمو نویسی و حتی کدنویسی در بخش VBA فرآیند محاسبات را تعریف کرده و از تکرار کردن عمل محاسبات و تهیه گزارش جلوگیری کنیم.
برای همین منظور، برای شما دوست گرامی، روش ساده و حتما کاربردی را با کدنویسی در قالب یک مینی پروژه معرفی و آموزش می دهم و کدها و روش پیاده سازی و آدرس دهی های این مینی پروژه را متناسب با داده ها و گزارش هایتان می توانید تغییرات لازم را اعمال کرده و در فایل خود استفاده کنید.
در این پروژه، جدولی که دارای اطلاعات یک حساب است را تعبیه کرده و تمام حساب ها ، اطلاعاتشان در این جدول ثبت می شود و هدفی را که دنبال می کنیم این است که بتوانیم به شکل پویا و کاملا خودکار، لیست نام حساب ها را تهیه و به جدول دیگری منتقل کرده تا بتوانیم تراکنش های هر حساب را جداگانه و سریع محاسبه و به نتایج مدنظر دست پیدا کنیم و این فرآیند همان طور که گفتم باید به صورت خودکار و دقیق انجام شود.
تمام دستورات کدنویسی شده پروژه را که جلوتر توضیح خواهم داد می توانید در رخدادهای صفحه موردنظر و یا از طریق کلید و یا هر رخداد دیگری که متناسب با فایل تان است اجرا کنید و این موجب خودکارسازی اجرای دستورات خواهد بود.
حالا بپردازیم به توضیحات کد ها و ببینیم چه توابع و چه ویژگی هایی با چه روش کدنویسی بکار بگیریم تا بتوانیم هدف پروژه را تامین کنیم.
در پروسیجری به نام List_Data_Array(هر اسم دیگری را هم می توانید تعریف کنید) برای فراخوان داده های ستون نام حساب/اشخاص در داخل محاسبات و ارزیابی از حلقه For-Next استفاده شده و تابع شرطی IF میاد تک تک داده سلول های ستون نام حساب/اشخاص را از نظر تعدادشان در ستون بررسی می کند و اگر تعداد آن داده در ستون از ابتدای ستون تا سلول خود داده، یک بود را به جدول لیست منتقل کند که در پروژه نتیجه این محاسبه و ارزیابی آن به متغیری به نام calcCrit داده می شود. ارزیابی تعداد داده در محدوده تعریف شده بر عهده تابع CountIf گذاشته شده است.
به منظور درج داده های مشمول شرط در جدول مقصد که همان لیست نام حساب/اشخاص است بایستی شماره ردیف آخرین ردیف جدول را پیدا کنیم تا به ردیف پائینی آن برای درج داده به عنوان سند جدید یا رکورد جدید دست پیدا کنیم و در این پروژه از یک شمارنده ای به نام cntD2 استفاده کرده ام و روش های دیگری هم برای یافتن شماره ردیف آخرین ردیف جدول وجود دارد و هر کدام بهتر و راحت تر بود می توانیم انتخاب و در کدنویسی اتخاذ کنیم.
تابع Range در خط دوم وظیفه پاکسازی جدول مقصد را دارد و از ویژگی ClearContents که فقط داده های جدول را حذف می کند استفاده شده و بُردرهایی که در در زمان درج داده در جدول نقش می بندد از ابزار Conditional Formatting استفاده شده که ابزار مناسبی برای تولید جدول به تعداد ردیف داده های منتقل شده است.
دوستان عزیز و با انرژی از اینکه تا اینجا مطالب را خوانید صمیمانه از شما سپاسگزارم و با معرفی این وبلاگ به دوستان تان، آنها را با دنیای بسیار حرفه ای و قدرتمند برنامه نویسی در اکسل آشنا کنید در صفحه اینستاگرام هم مطالب و پست های مربوط به برنامه نویسی در اکسل را دنبال کنید و بنده هم سعی بر آن دارم که مطالب ناب و کاربردی اکسل و VBA به خصوص روش کدنویسی در اکسل را در بخش VBA به رشته تحریر در آورده و مطالب را در قالب مینی پروژه هایی در اختیار علاقمندان اکسل و VBA قرار دهم.
فایل پروژه را از اینجــــــا دانلود کنید.

برچسبها: vba, excel, Coding, برنامه_نویسی_در_اکسل
در نرم افزار اکسل، اطلاعات جداول ثبت شده که دارای ستون هایی از اعداد می باشند با درنظر گرفتن روش جمع زدن ستون های اعداد که در جدول وجود دارد با روش های مختلف می توانیم فرآیند محاسبه را با کدنویسی در بخش VBA نرم افزار اکسل در صفحات آن ایجاد کنید.
در این پروژه که می خواهم راجع به آن صحبت کنم جدولی کوچک که دارای یک ستون نام کالا و سه ستون حاوی عدد را در فایل اکسل ایجاد کرده ام و هدفی را که دنبال می کنم این است که هر سلولی از سه ستون دارای عدد را با ماوس انتخاب می کنم جمع اعداد ستون سلول انتخاب شده را در سلولی تعریف شده(در این پروژه سلول G2 است) نمایش دهد.
در کدنویسی این مینی پروژه از ویژگی های Column و End و Row و Range و ActiveCell و Cells و سایر ویژگی ها استفاده شده و ترکیبی از توابع و ویژگی ها دستوری نوشته شده که وظیفه آن این است که کاربر سلولی را که در ستون موردنظر انتخاب می کند دستور بیاد محدوده بین اولین سلول ستون از جایی که عدد وارد شده تا آخرین ردیف ان ستون را استخراج کند و به متغیری به نام Sumrng تحویل دهد و این آدرس استخراج شده(که دستور به صورت پویا استخراج می کند) یه تابع SUM داده می شود تا اعداد محدوده تحویلی را مجع بزند و در داخل سلول G2 درج کند. این دستور در Procedure شیت مورد نظر در Worksheet_SelectionChange صدا زده و با انتخاب سلول با ماوس یا با کلیدهای جهت دار کیبرد دستور به راحتی اجرا و نتجه حاصل می شود.
این یک روش ساده و حرفه ای از روش کدنویسی VBA در اکسل است و روش ها و فرآیندهای پیچیده تر و خلاقانه تر این هم می توانیم متناسب با پروژه هایمان کدنویسی کنیم.
نمونه فایل پروژه را از اینجـــــــا دانلود کنید

برچسبها: vba, excel, Coding, برنامه_نویسی_در_اکسل
