Thursday, March 23, 2023

এক্সেল শিটে ডায়নামিক অ্যাটেন্ডেন্স তৈরি | How to create dynamic attendance sheet using excel

 আমরা অনেকেই এক্সেলে অ্যাটেন্ডেন্স শিট তৈরি করতে চাই তৈরি করতে চায়। সেক্ষেত্রে আমরা অনেকেই বিভিন্ন ধরনের পদ্ধতি ব্যবহার করে থাকি। কিন্তু এক্সেলে ডায়নামিক ভাবে অ্যাটেন্ডেন্স শিট তৈরি করার পদ্ধতি রয়েছে যেটি আপনার দৈনন্দিন কাজকে অনেক সহজ করে দিবে। এক্ষেত্রে আমরা এক্সেল এর মাধ্যমে চেকবক্সের ব্যবহার করতে পারি। এক্ষেত্রে আমরা নিচের পদ্ধতি গুলো অনুসরণ করে সহজেই একটি ডায়নামিক অ্যাটেনডেন্স শিট তৈরি করে ফেলতে পারি।


প্রথম ধাপ - প্রথমে এক্সেল শিটের FILE TAB থেকে OPTIONS মেনুতে ক্লিক করব।


 দ্বিতীয় ধাপ-  CUSTOMIZE RIBBON বাটনে ক্লিক করব।


তৃতীয় ধাপ- ডান পাশের কলাম থেকে নিচের দিকে DEVELOPER অপশনটিতে টিক দিবো। এবং নিচের OK বাটনে ক্লিক করে বেরিয়ে যাব। 


চতুর্থ ধাপ- এবারে এক্সেল শীতের উপরের ট্যাব মেন্যু গুলো থেকে DEVELOPER ট্যাব অপশনটি নির্বাচন করব। 


Excel attendance Marco
edutechinfobd.blogspot.com


পঞ্চম ধাপ- DEVELOPER TAB থেকে INSERT অপশনের ডাউন অ্যারো বাটনে ক্লিক করে form controls গ্রুপ থেকে চেকবক্স সিলেক্ট করে এক্সেলে এক্টিভ ওয়ার্কশীটের প্রয়োজনীয় CELL এ চেকবক্স টি ড্রাগ করে ছেড়ে দিব। 


ষষ্ঠ ধাপ- এবারে চেকবক্সের রাইট বাটনে ক্লিক করে এডিট অপশনে ক্লিক করে সেল লিংকের জন্য এক্সেলের যে সেলে চেকবক্সটি রয়েছে সেই সেল নাম্বারটিকে লিংক করব। এবং এভাবে করে যতগুলো চেকবক্স প্রয়োজন ততগুলো চেকবক্স তৈরি করে নিব এবং একই সাথে সংশ্লিষ্ট সেল লিংক যুক্ত করব।


এক্ষেত্রে আমরা চাইলে একটি চেকবক্স সেল রেফারেন্সের সাথে লিঙ্ক আপ করে কপি পেস্টও করে নিতে পারি। কিন্তু এক্ষেত্রে সমস্যা হল প্রতিটি চেকবক্সে একই সেল রেফারেন্স কপি-পেস্ট হয়ে যাবে।  সেক্ষেত্রে একটি চেকবক্সে ক্লিক করলে সবগুলো চেকবক্সে একটিভ হয়ে যাবে। অনুরূপভাবে একটি চেকবক্স  থেকে টিক চিহ্ন সরিয়ে নিলে প্রতিটি চেকবক্সের টিক চিহ্ন উঠে যাবে। 


এক্ষেত্রে সমস্যা হচ্ছে অনেক সংখ্যক চেকবক্স থাকলে সেগুলোকে লিংক করতে অনেক সময় সাপেক্ষ ব্যাপার।  আর এই সমস্যা সমাধানের জন্য আমরা মাত্র কয়েক লাইনের একটি VBS MACRO কোড ব্যবহার করতে পারি। 


MACRO কোডটি ব্যবহারের জন্য আমাদেরকে পুনরায় DEVELOPER TAB  এর বাম দিকে VISUAL BASIC অপশনে ক্লিক করতে হবে। এরপর নতুন একটি মডিউল নিয়ে সেখানে নিচের কোডটিকে পেস্ট করে সেভ করে দিতে হবে।


Excel attendance Marco
https://edutechinfobd.blogspot.com


Sub UpdateCellLinks()

    Dim c As Shape

    Dim i As Integer

    Dim j As Integer

    

    For j = 1 To 33 'Columns A to AG

        For i = 1 To ActiveSheet.Cells(Rows.count, j).End(xlUp).Row

            For Each c In ActiveSheet.Shapes

                If c.Type = msoFormControl Then 'If shape is a form control

                    If c.TopLeftCell.Column = j And c.TopLeftCell.Row = i Then

                        c.ControlFormat.LinkedCell = Cells(i, j).Address 'Update cell link

                    End If

                End If

            Next c

        Next i

    Next j

End Sub



এবারে পুনরায় ডেভলপার TAB থেকে বাম দিকে MACROS অপশনে ক্লিক করে কোডটিকে RUN করে দিতে হবে। এতে করে ম্যানুয়ালি প্রতিটি সেলে সেল রেফারেন্স লিংক করার প্রয়োজন হবে না। ডায়নামিকভাবে প্রতিটি সেলে সংশ্লিষ্ট সেল নাম্বারটি লিংক আপ হয়ে যাবে।


সপ্তম ধাপ- এরপর একেবারে শেষের কলামে যতগুলো টিক মার্ক বা চেকবক্স রয়েছে সেগুলোর সর্বমোট সংখ্যা কাউন্ট করে যোগফল বসাবো। এক্ষেত্রে countif() ফাংশনটি ব্যবহার করা যেতে পারে। 



বিদ্র: Save as থেকে অবশ্যই Excel Marco-Enabled Workbook অপশনটি নির্বাচন করে ফাইলটিকে সেইভ করতে হবে। নয়ত কোডটি কাজ করবে না।


[[ DONWLOAD DEMO ]]






0 comments:

__আপনার মতামত নিচে লিখুন। ধন্যবাদ।__