اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

بسم الله الرحمن الرحيم

لم اجد مواضيع عن Class فسأقوم بالقاء الضوء بشكل بسيط

كما ذكرت فى عنوان الموضوع ان Class هو مخزن الشفرات و الاستفاده المثلى منه حينما تريد تكرار الكود فى اكثر من ورقه عمل فما عليك سوى ان تقوم بانشاء Class جديد ثم تقوم بادراج الكود مره واحده ثم تقوم باستدعاءه و تسميته من اى مكان بالملف 0

تعالوا نحاول ان نفهم اكثر بهذا المثال

الهدف :

انشاء مسلسل من 1 : 10 لاى ورقه عمل

الخطوات :

الخطوه الاولى انشاء Class :

ادخال الى صفحه vba عن طريق Alt + F4

ادراج Class

هذا هو كود التسلسل

Public Function To_10()
   For i = 1 To 10
        Cells(i, 1) = i
   Next
End Function
اكتبه داخل ورقه Class لاحظ اننا قد قمنا بتسميه كود التسلسل ب To_10 الخطوه الثانيه استدعاء Class : انت لا تزال فى ورقه vba نقرنان على ورقه العمل التى تريد تطبيق المسلسل عليها الكود التالى يقوم بتعريف Class السابق انشاءه باسم clas ثم نقوم باستدعاء كود التسلسل(To_10) الموجود داخل clas
Sub DOIT()
    Dim clas As New Class1
    clas.To_10
End Sub

و بذلك تستطيع نسخ هذا الكود و وضعه فى اى ورقه عمل و انشاء مفتاح أو Auto_Open فيتم الترقيم من 1: 10 تلقائيا

هذا مثال بسيط لاستخدام Class طبعا كما ذكرت اذا كان حجم الكود كبير و البيانات كثيره تستطيع باستخدام Class استدعاءه عن طريق سطران فقط 0

السلام عليكم

Class.rar

قام بنشر

جزاك الله خيرا أخي هادي و لكني كمبتدىء بالإكسيل أسأل مالفرق بين هذا الترقيم و الترقيم الآخر عن طريق كتابة أول رقمين ثم تحديد الخلايا ثم السحب

قام بنشر

الاستاذ هادي سالم

جزاك الله خيرا

ان امكن توضيح الفرق بين عمل الكود باستدعاء Class

وذالك لانني عملت نفس الكود بدون استخدام Class

فارجو ان كان الوقت يسمح لك ان تدرج مثال يبين

فعلا ان استخدام Class افضل من اي طريقة.

"الطريقة المثلى لاستخدام Class "

والتحية للجميع

____1.rar

قام بنشر

بسم الله الرحمن الرحيم

أخى محمد عسكر

أخى نزار سليمان عيد

أخى ابو اسامة العينبوسي

شكرا و بارك الله فيكم

جزاك الله خيرا أخي هادي و لكني كمبتدىء بالإكسيل أسأل مالفرق بين هذا الترقيم و الترقيم الآخر عن طريق كتابة أول رقمين ثم تحديد الخلايا ثم السحب

الترقيم الأول باستخدام الفيجوال بيزيك

الترقيم الثانى يدوى

الاستاذ هادي سالم

جزاك الله خيرا

ان امكن توضيح الفرق بين عمل الكود باستدعاء Class

وذالك لانني عملت نفس الكود بدون استخدام Class

فارجو ان كان الوقت يسمح لك ان تدرج مثال يبين

فعلا ان استخدام Class افضل من اي طريقة.

"الطريقة المثلى لاستخدام Class "

لقد قمت بادراج مثال بسيط كما قلت حتى لا يكون الموضوع معقد 0

اليكم مثال اخر (بصراحه مثال مفيد جدا ) لتضح الصوره اكثر

الهدف :

انشاء مسلسل من 1 : 10 و مجموع الخلايا لعده اعمده ثم وضع ناتج الجمع فى نهايه العمود

الخطوات :

الخطوه الاولى :

انشئ Class جديد و قد قمت بتسميته CTotal_Range بالضغط على F4 و تغيير اسمه

و اليكم داله باسم RNGB_Total تجمبع عمود B و تستطيع نسخ هذه الكود لعد اعمده مع تغيير حرف "B" الى اى حرف عمود مع تغيير اسمها 0

كما هو بالملف المرفق

Public Function RNGB_Total()
    Dim RNG_Total As Range
    Dim h As Integer
    h = Range("A1").CurrentRegion.Rows.Count
    Set RNG_Total = Range(Cells(1, "B"), Cells(h, "B"))
    Cells(h, "B").ClearContents
    Cells(h, "B") = Application.WorksheetFunction.Sum(RNG_Total)
End Function
الخطوه الثانيه : استدعاء Class الاول لانشاء المسلسل Class1 استدعاء CTotal_Rangeللعمود الذى تريد ايجاد مجموعه بالكود التالى
Sub DOIT()
    Dim clas As New Class1
    clas.To_10
    Dim clas1 As New CTotal_Range
    clas1.RNGA_Total
    clas1.RNGB_Total
    clas1.RNGC_Total
    clas1.RNGD_Total
    clas1.RNGE_Total
End Sub

و قد قمت بارفاق ملف

الورقه الاولى تقوم بجمع الاعمده من B الى E

الورقه الثانيه تقوم بجمع العمود B و C

الورقه الثالثه تقوم بجمع العمود B و D

و ذلك لاستغلال Class واحد فى عده اعمده

لا حظ انك بمكن تغيير المجال بتغيير كود المشاركه السابقه كم فعلت بتغيير نهايه I الى 11

السلام عليكم

Class_01.rar

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information