سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

صدور فیش حقوقی در اکسل

۳/۵ - (۸ امتیاز)

فراخوانی اطلاعات و ایجاد فیش حقوقی

صدور فیش حقوقی یکی از پرکارتکرار ترین مسائل اکسلی هست. خیلی وقت ها افراد برای مجموعه خودشون میخوان فیش حقوقی مطابق با خواسته خودشون طراحی کنن. برای این کار هم نمیخوان از نرم افزارهای آماده استفاده کنن. طراحی یک فیش حقوقی با ویژگی ها و جزئیات دلخواه، براحتی در اکسل امکان پذیر هست. از این روش برای طراحی فاکتورها، فرم ها و … میشه استفاده کرد.
در این آموزش نحوه فرمول نویسی در فرم برای صدور فیش برای افراد مختلف و پرینت این فرم ها رو یاد میگیریم.

فرض کنید دیتابیسی مطابق شکل ۱ داریم که شامل اطلاعات حقوق افراد مختلف (میزان حقوق، مالیات ،بیمه و …) است.

نکته:
برای حل این مسئله از Mail Merge هم میشه استفاده کرد که میتونید در مقاله مربوطه مطالعه کنید
دیتابیس داده های حقوق

شکل ۱ – دیتابیس داده های حقوق

 حالا میخواهیم فیش حقوقی مطابق شکل ۲ داشته باشیم که با انتخاب کد ملی هر نفر، اطلاعات مربوطه را در جای خودش ثبت کنه.

فرم خام طراحی شده برای فیش حقوقی

شکل ۲- فرم خام طراحی شده برای فیش حقوقی

حالا میخواهیم در سلول I3 هر کد ملی که وارد کردیم، اطلاعات مربوطه از شیت دیتابیس در قسمت مناسب جایگذاری بشه. برای این کار از تابع Vlookup و ترکیبش با Match استفاده میکنیم. در این صورت تابع جلوی هر سلولی قرار بگیره، مقدار مربوطه با اون سلول رو از شیت دیتابیس فراخوانی میکنه.

نکته:
دقت داشته باشید که عناوین موجود در فیش حقوقی حتما باید با سرستون های دیتابیس عینا مشابه باشند در غیر اینصورت تابع Match خروجی صحیحی نخواهد داشت.

 

VLOOKUP($I$۳,’حقوق و دستمزد’!$A$۱:$L$۱۵,MATCH(فیش!J4,’حقوق و دستمزد’!$A$۱:$L$۱,۰),۰)

در این فرمول، سلول I3 در دیتابیس جستجو میشه و وقتی پیدا شد، داده ی مربوطه در شماره ستون مورد نظر (خروجی تابع Match ) رو بر میگردونه.

در انتها و در قسمت خالص دریافتی به حروف هم از افزونه ABH استفاده شده که مقدار خالص دریافتی رو به حروف تبدیل میکنه و برای اینکه عدد نهایی ،اعشار نداشته باشه که وقتی به حروف تبدیل میشه خیلی طولانی نشه، نتیجه نهایی رو با تابع Roundup گرد کردیم.

در مورد گرد کردن حتما مقاله مربوط به گرد کردن اعداد رو مطالعه کنید.

نکته:
گاهی اوقات مقداری که فراخوانی میشه از پهنای سلول بزرگتره و در سلول جا نمیشه و نیاز به تغییر اندازه فونت یا پهنای سلول وجود داره. برای اینکه این مشکل رو حل کنیم همه سلول های حاوی فرمول (که متغیر هستن) رو روی Shrink to fit تنظیم میکنیم. به این ترتیب دیگه مشکلی از این لحاظ نخواهیم داشت و در صورت نیاز، فونت سلول کوچک میشه و نیازی به تغییر دستی این اندازه ها نیست. ویدئو زیر نحوه کار رو تشریح میکنه.

 

پرینت فیش

حالا میخواهیم کاری کنیم که با زدن یک کلید، برای همه کدهای ملی موجود در دیتابیس، فیش حقوقی در قالب PDF ایجاد بشه.

برای این کار از کدنویسی VBA استفاده میکنیم. و حلقه For که بره و توی ستون کد ملی تک تک سلول ها رو بیاره، جایگزین کنه و شیت رو به PDF تبدیل و در یک فولدر با نام خودش ذخیره کنه.

کد زیر رو در یک ماژول کپی و اجرا میکنیم.

Sub Print_to_File()
Dim File_Address As String, Folder_Address As String
Dim Persons_Numbers As Integer
Dim ICounter As Integer
Persons_Numbers = WorksheetFunction.CountA(Sheet1.Range("A:A")) - 1
Folder_Address = "C:\Users\ExcelPedia\Desktop\Prints\ "
For ICounter = 1 To Persons_Numbers
    Sheet2.Range("I3") = Sheet1.Range("A1").Offset(ICounter, 0)
    File_Address = Folder_Address & Sheet2.Range("I3") & ".pdf"
    Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=File_Address
Next ICounter
End Sub

دقت داشته باشید در کد نوشته شده، مسیر ذخیره رو مطابق با سیستم خودتون تغییر بدید.

Folder_Address = “C:\Users\ExcelPedia\Desktop\Prints\

در واقع متغیر Folder_Address متغیری هست که مسیر ذخیره فولدری که قراره فایل های PDF در اون ذخیره بشن رو تعیین میکنه. پس با همین الگو، قسمت قرمز رنگ رو مطابق با سیستم و فولدر خودتون تغییر بدید.

ویدئو زیر برای تشریح نحوه کدنویسی ارائه شده.

جهت دیدن جزئیات بیشتر و استفاده از فایل نهایی، فایل زیر رو دانلود کنید و آموزشها رو از روی اون مجدد مطالعه کنید.

دانلود فایل نمونه این آموزش

جهت دانلود این فایل روی دکمه زیر کلیک کنید:

134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • زهرا عسگریان ۱۴ آبان ۱۴۰۳ / ۶:۱۱ ب٫ظ

    سلام وقت بخیر برای اموزش فیش حقوقی کدوم فایل را باید تهیه کنیم؟

    • آواتار
      حسنا خاکزاد ۱۴ آبان ۱۴۰۳ / ۶:۵۸ ب٫ظ

      درود بر شما
      همین مقاله ای که انتهاش کامنت ثبت کردید اموزش طراحی فیش حقوقیه

  • احسان ۱۸ اسفند ۱۴۰۲ / ۰:۰۲ ق٫ظ

    باسلام مرسی از آموزش خوبتون.فقط اگر امکانش هست راهنمایی کنید که تبدیل فیش ها به pdf بصورت اکسپورت انجام نشود چون نمیخواهم که پی دی اف هایم فرمت عکس بخود بگیرند . بعنوان مثال جهت بارگذاری آنها در سایت fish24 آنهارا نمیپذیرد . هرچند که من فایلهای pdf را با smallpdf ادغام نموده تا در برنامه fish24 بارگذاری کنم ولی متاسفانه این فایل ادغامی پی دی اف را شناسایی نمیکند.باسپاس

    • آواتار
      حسنا خاکزاد ۲۴ اسفند ۱۴۰۲ / ۵:۴۸ ب٫ظ

      درود بر شما
      فرمت عکس نیست
      پی دی افه
      مشکل احتمالا از حای دیگه اس

  • علی محسنی ۳۱ مرداد ۱۴۰۲ / ۸:۱۶ ق٫ظ

    سلام
    با تشکر از اموزش خیلی خوب شما –متاسفانه در زمان نوشتن این پیام نتونستم از روش شما استفاده کنم و جواب نداد (احتمالا به علت مشکل جدول خودم ) –سوالی داشتم در اموزش ، جدول شما چپ چین است ، ایا از قصد ، اینکار انجام شده –چون شنیدم تابع loockup مشکلاتی در این خصوص دارد . من تازه کار هستم و دو هفته است که با روزی یک دوساعت شروع کردم .ایا امکان استفاده از این روش با تابع index و match است و همچنین با تابع xloockup که متناسب با جدول کناری خود فیلد خالی را پر کند – وجود دارد .

    • آواتار
      حسنا خاکزاد ۳۱ مرداد ۱۴۰۲ / ۱۰:۳۲ ب٫ظ

      درود بر شما
      نه چپ پین بودن اثری نداره
      تابع vlookup رو به جلو عمل میکنه… حالا چه در راست به چپ و چه برعکس

  • پوریا ۱۷ مرداد ۱۴۰۲ / ۹:۳۳ ق٫ظ

    سلام وقتتون بخیر من ۸۰۰۰ تا داده دارم میخوام یه تعداد مشخص رو کپی کنم میشه راهنمایی کنین

    • آواتار
      حسنا خاکزاد ۱۷ مرداد ۱۴۰۲ / ۵:۱۰ ب٫ظ

      درود بر شما
      خب قاعده انتخاب اون ی تعداد چیه؟
      انتخاب کنید و کپی کنید !
      احتمالا سر انتخاب مشکل داردی که باید بیشتر توضیح بدید

  • رضا ۱۱ آذر ۱۴۰۱ / ۶:۴۵ ب٫ظ

    سلام
    ممنون بابت این آموزش کاربردی
    چگونه کد رو تغییر بدیم تا بجای تبدیل به pdf ، پرینت گرفته بشه ؟

    • آواتار
      حسنا خاکزاد ۱۲ آذر ۱۴۰۱ / ۳:۰۹ ب٫ظ

      درود بر شما
      یک بار ماکرو پرینت رو ضبط کنید
      مقایسه کنید کامل متوجه میشید

  • مجید اسدی ۲۵ آبان ۱۴۰۱ / ۹:۲۵ ب٫ظ

    سلام وقت بخیر، قابل دانلود نیست متاسفانه راهی نداره که دانلود کنیم؟

    • سامان چراغی ۹ آذر ۱۴۰۱ / ۱۰:۲۱ ق٫ظ

      سلام، وقت بخیر
      متأسفانه به دلیل مشکلات و محدودیت های ایجاد شده، برخی از قسمت های سایت دچار مشکل شدن. علی ایحال طبق آزمایشی که کردیم، اگر در حساب کاربری لاگین کرده باشید و درخواست ارسال ایمیل رو بزنید، ایمیل ارسال میشه.
      لطفا از این طریق اقدام کنید و اگر مشکل همچنان حل نشده بود بفرمائید مستقیم خدمتتون ارسال کنیم.

  • رامتین پورغلامی ۱ آبان ۱۴۰۱ / ۱۰:۱۵ ق٫ظ

    سلام متاسفانه فایل نمونه قابل دانلود نیست

    • آواتار
      حسنا خاکزاد ۱۰ آبان ۱۴۰۱ / ۲:۱۷ ب٫ظ

      درود
      داخل سایت لاگ این کنید و دانلود کنید
      متاسفانه افزونه فعلا مشکل داره

  • ایرج عباس نژاد ۲۹ مرداد ۱۴۰۱ / ۳:۴۶ ب٫ظ

    سلام و درود بر شما
    سپاسگزار لطف و محبت شما در ارائه مطالب مفید و آموزنده هستم.
    ۱. من از VBA شما برای چاپ کارنامه دانش آموزان استفاده کردم. آیا امکان دارد در برگه A5 چاپ کرد؟ چه تغییراتی در کدنویسی لازم دارد؟
    ۲. از چه فرمولی باید استفاده کرد تا هنگام ورود نمرات در کاربرگ اکسل به جای عدد ۹۷، کلمه «غ موجه » ، نوشته شود؟
    ممنون از راهنمایی شما.

    • آواتار
      حسنا خاکزاد ۳۰ مرداد ۱۴۰۱ / ۱:۲۴ ب٫ظ

      درود
      تنظیمات پرینت رو تغییر بدید نیاز به تغییر در کد نیست

      ۲- مورد دوم هم خب کافیه تایپ کنید

  • نگین ۲۵ مرداد ۱۴۰۱ / ۱۰:۳۰ ق٫ظ

    درود بر شما
    بسیار سپاسگزارم بخاطر این آموزش
    من اصلا نمیتونم اون بخش پرینت را اجرا کنم . روی کلید ماکرو و run را انتخاب میکنم ولی همش یک پیغام میدهد
    Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=File_Address
    باید چکار کنم ؟
    ممنون از شما

    • آواتار
      حسنا خاکزاد ۲۵ مرداد ۱۴۰۱ / ۳:۵۰ ب٫ظ

      درود بر شما
      ادرس خودتون رو باید بدید
      برید داخا محیط کد و اون قسمتی که مربوط به ادرس هست رو مطابق با مسیر دلخواه خودتون تغییر بدید

  • آواتار
    رضائی ۲ مرداد ۱۴۰۱ / ۱۱:۴۸ ق٫ظ

    با سلام
    ضمن عرض تشکر از زحمات شما و این آموزش بسیار کاربری. من یک سئوال داشتم: کلیه مراحل را همانند آموزش طی کردم و تغییرات مورد نیاز را هم اعمال کردم. تنها مشکلی که وجود دارد این است که فایل ها pdf که ایجاد میشوند قبل از کد ملی، کلمه print هم در اسم ایجاد شده وجود دارد. من ولی نیاز دارم که همانند آموزش شما، اسم فایل فقط کد ملی باشد.
    لطفا راهنمائی نمائید.

    با تشکر مجدد

    • آواتار
      حسنا خاکزاد ۳ مرداد ۱۴۰۱ / ۹:۱۲ ق٫ظ

      درود بر شما
      اون کدی که اسم فایل رو تولید میکنه چک کنید
      ببینید چی اضافه شده
      حذفش کنید

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان