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

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

قام بنشر (معدل)

السلام عليكم

اخى ناصر - مبدئياً السبب هو عدد اعمدة مصفوفة النتائج Temp --  وكما زكرت لحضرتك سابقاً 

انه حتى وان لم تقم بالمسح سوف يتم استبدال القيم الموجوده بالقيم الجديده في كل مرة -- كود المسح نستخدمة لهدف واحد  - بفرض انه هناك بيانات موجوده حتى الصف العشرين ثم من خلال كود بحث لم نضع به كود مسح - حصلنا على نتيجه من عشر صفوف - عندها ستجد اول عشر صفوف هم النتيجة الجديده والعشره الاخريين هم الموجودون من قبل لاننا لم نمسح النطاق الذي سنضع به النتائج - لهذا نستخدمه لربما تكون نتيجة  البحث الجديد عدد اعمدتها وصفوفها اقل من البحث الذي قبله

 -- مبدئياً غير كود المسح لان حضرتك محدده حتى العمود DW  , اجعلة حتى العمود Dj

    sh.Range("A12:DW1000").ClearContents

ثانياً : - ولان عدد اعمده مصفوفة النتائج temp  ستتخطى العمود Dj  - ولاننا من خلال السطر التالى 

 .Range("A11").Resize(j - 1, UBound(temp, 1)).Value = temp

ومعناه بدءأ من الخليه A11  وحتى الصف   J - 1    وحتى والعمود  ( UBound(temp, 1 انسخ المصفوفة temp  -- مع العلم بان ناتج  ( UBound(temp, 1   هو 206     اى سيتم نسخ تلك المصفوفة بدءاً من العمود A  وحتى العمود رقم 206 

-- حقيقة كثره عدد الاعمدة التى يتعامل معها الكود  تجعل من الصعب فحصه والتعامل معه - ولكن هناك حل اعتقد انه مناسب -- اجعل النسخ بدءاً من العمود A   وحتى العمود Dj  فقط من خلال تغيير السطر السابق بهذا السطر ولاحظ النتائج  ولا تنسي ان تغير كود مسح البيانات لانه الى DW حاليا ً - مع العلم بان 144 هو رقم العمود Dj --  وكأننا نقول للكود - انسخ مصفوفة النتائج بدءا من العمود A وحتى العمود (Dj (114

        .Range("A11").Resize(j - 1, 114).Value = temp

 

تم تعديل بواسطه خالد الرشيدى
  • Like 1
قام بنشر

الاستاذ المحترم خالد الشرقاوي

جزاك الله كل خير وبارك لكم ... وبعد

الحل رائع ..

ولكني اتعشم في اضافه هذه الجمله بدل سطر مسح التسطير ونسخ التسطير

حتى ياخذ كل التنسيقات التي نعملها الى كل الصفوف

    Range("A7:R7").AutoFill Destination:=Range("A7:R" & Range("R2").Value + 6), Type:=xlFillDefault

لااقصد هذه الجمله بعينها وانما لك حريه التغيير فيها لتؤدي الغرض

وان يكون طول الصفوف فيها مرنا لايعتمد على عدد في خليه

قام بنشر

السلام عليكم

اخى ناصر الهدف من مسح التسطير ثم اعادته - لانه قد تختلف عدد اسطر واعمده البحث - بافتراض تم البحث وكانت النتائج 20 صف وتم تسطيرها - ثم تم البحث مثلا عن قيمه اخرى وكانت النتائج على 10 اسطر ان لم يكن هناك مسح تسطير ثم اعادته حسب عدد النتائج الجديده ستجد ان التسطير الى الصف 20 في حين ان النتائج الى الصف 10 - وبالتالى حتى وان استخدمت الطريقة السابقه سيكون هناك مسح فى البدايه ثم اعادة تنسيق ( سطرين من الاكواد ))

كما هناك امر يجب مراعاته - ((( الوقت ))) - اعتقد ان وقت مسح التسطير واعادته اقل بكثير من ال  مسح ال Autofill  واعادتة -- 

اما وان اردت معرفة اسلوب العمل بطريقة ال Autofill  بهدف الاستفادة - يرجى ادراج نموزج مبسط جداً مشروح فية المطلوب - ويفضل ان تفتح به موضوع جديد 

-- تقبل مرورى وتحياتى 

  • Like 1

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