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

الاستغناء عن المعادلات والدوال داخل ورقة العمل لتجنب بطئ الملف


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

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

 

كثيرا ما نصمم برامج بطريقة جميلة ونعتمد علي البرنامج في العمل ولكن يأتى ما لم يكن في الحسبان

وهو بطئ الملف من كثرة البيانات المدخلة به

وينصح

بايقاف الحساب التلقائي  وتشغيلة عند الحاجه وهو اسلوب لتجنب  البطئ ولكن ليس عمليا

ويعرض الاخوة بعض الاكواد للاستغناء عن بعض الحسابات داخل الاوراق  والتنسيقات وغيرها

ويأتى في النهاية الحل الافضل بالنسبة لي وهو الغاء جميع المعادلات داخل اوراق العمل ووضعها على هيئة اكواد تفعل بضغطة زر او تنشيط شيت او اي حدث تريده

ومرفق مثال للدالة SUMIF

علي طريقة الاكواد

وتفعيلها بضغطة زر 

يتبع

طريقة للاستغناء عن المعادلات داخل الشيت.rar

  • Like 11
رابط هذا التعليق
شارك

  • 6 months later...

السلام عليكم ورحمة الله

 

نضع لكم اليوم طريقة تحويل الدالة Vlookup  الى كود

مثالين احدهم عند الضغط على زر يتم جلب البيانات

والاخر عند كتابة الكود يأتي بالنتيجة مباشرة

المثال الاول

vlookup.PNG

الكود

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myrg1 As Range
    If Target.Column = 10 Then
        Set myrg1 = Sheet2.Range("b5:e30")
        On Error Resume Next
        Application.ScreenUpdating = False
        sheet1.Range("k" & Target.Row & ":" & "m" & Target.Row).ClearContents
        sheet1.Cells(Target.Row, "k") = Sheet2.Application.WorksheetFunction.VLookup(Target.Value, myrg1, 2, 0)
        sheet1.Cells(Target.Row, "l") = Sheet2.Application.WorksheetFunction.VLookup(Target.Value, myrg1, 3, 0)
        sheet1.Cells(Target.Row, "m") = Sheet2.Application.WorksheetFunction.VLookup(Target.Value, myrg1, 4, 0)
        Application.ScreenUpdating = True
    End If
End Sub

للتحميل اضغط هنا

:fff::fff::fff::fff::fff:

المثال الثاني

vlookup1.PNG

الكود

Sub Yasser()
    Dim myrg1 As Range
    Dim i As Long
    Set myrg1 = sheet1.Range("b5:e30")
    For i = 6 To 30
        Application.ScreenUpdating = False
        On Error Resume Next
        sheet1.Cells(i, "k") = sheet1.Application.WorksheetFunction.VLookup(sheet1.Range("j" & i), myrg1, 2, 0)
        sheet1.Cells(i, "l") = sheet1.Application.WorksheetFunction.VLookup(sheet1.Range("j" & i), myrg1, 3, 0)
        sheet1.Cells(i, "m") = sheet1.Application.WorksheetFunction.VLookup(sheet1.Range("j" & i), myrg1, 4, 0)
    Next i
    Application.ScreenUpdating = True
End Sub

للتحميل اضغط هنا

:fff::fff::fff::fff::fff:

تقبلو تحياتي

  • Like 4
رابط هذا التعليق
شارك

8 ساعات مضت, ياسر خليل أبو البراء said:

بارك الله فيك أخي الغالي ياسر العربي

تسلم الأيادي يا كبير .. جزاك الله كل خير

تسلملي ياريس حبيبي ابو البراء واضح ان مفيش متغيرات مش متعرفه :wink2:

1 ساعه مضت, ابو عبدالبارى said:

استاذ ياسر العربى

  ولا اجمل ولا اروع من هذا الكود

اخي الكريم ابو عبد الباري ولا اجمل ولا اروع من ردك

تقبلوا فائق احترامي

  • Like 1
رابط هذا التعليق
شارك

1 ساعه مضت, محي الدين ابو البشر said:

السلام عليكم

استاذ ياسر 

بصراحة لو في MEGA LIKE

فأنت تستحقها

بارك الله فيك وجزاك الله كل خير

بصراحة لو في اجمل من كلامك كنت قلته لك

اخي الكريم محي الدين

 تقبل فائق احترامى 

:fff::fff:

  • Like 1
رابط هذا التعليق
شارك

  • 2 years later...

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