محمد ايمن قام بنشر مايو 11, 2022 قام بنشر مايو 11, 2022 الاصدقاء الاكارم تحية طيبة الكود التالي يقوم بعملية فلترة البيانات و نسخها الى صفحة جديدة باستخدام ADO و RecordSet المشكلة : عند فتح ( اكثر ) من مصنف اكسل الكود يقوم بفتح المصنف مرة ثانية للقراءة فقط و الكود يصبح بطيئ جدا جدا كيف يمكن حل المشكلة Sub testado() On Error GoTo ErrSub Dim SDate As Date Dim ii As Integer SDate = Date - Weekday(Date) Dim connection As New ADODB.connection connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & _ ";Extended Properties=""Excel 12.0;HDR=Yes;"";" Dim query As String Dim rs As New ADODB.Recordset ii=8 query = "select * from [subrs$] where [الاسم]='محمود' and [التاريخ]>=" & CDbl(SDate) rs.Open query, connection Sheets("ملخص الارصدة").Select Do While Not rs.EOF Sheets("ملخص الارصدة").Range("B" & ii) = rs.Fields(0) Sheets("ملخص الارصدة").Range("C" & ii) = rs.Fields(1) Sheets("ملخص الارصدة").Range("D" & ii) = rs.Fields(2) Sheets("ملخص الارصدة").Range("E" & ii) = rs.Fields(3) Sheets("ملخص الارصدة").Range("F" & ii) = rs.Fields(4) rs.MoveNext ii = ii + 1 Loop rs.Close ErrSub: If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description End Sub خطوات ظهور المشكلة 1- افتح اي مصنف اكسل 2- افتح الملف المرفق في مثيل جديد لاكسل 3- جرب الكود المصنف2.xlsm
محمد يوسف ابو يوسف قام بنشر مايو 12, 2022 قام بنشر مايو 12, 2022 السلام عليكم لم اجد اي مشكلة بالكود تفذت الخطوات .... خطوات ظهور المشكلة 1- افتح اي مصنف اكسل 2- افتح الملف المرفق في مثيل جديد لاكسل 3- جرب الكود صورة لتنفيذ الخطوات
محمد ايمن قام بنشر مايو 12, 2022 الكاتب قام بنشر مايو 12, 2022 الله و ايدك الفلترة تتم حسب الاسبوع و الاسم لكن الاسم يتغير دوما ( طبعا الاسم مخزن في متغير و لكن اختصرت الكود في المرفق ) اخ محمد هل جربت فتح المصنف في مثيل جديد ام قمت بفتحه بشكل عادي ( المشكلة لا تظهز اذا فتحت الملف بشكل عادي )
omar elhosseini قام بنشر مايو 12, 2022 قام بنشر مايو 12, 2022 اخي شاهد المرفق واخبرني هل هو سريع او المشكله كما هي المصنف2.xlsm
محمد ايمن قام بنشر مايو 12, 2022 الكاتب قام بنشر مايو 12, 2022 اخ عمر المرفق ممتاز و لكن لا يلبي المطلوب يجب ان يتم استخراج كافة الاسماء وليس اسم محدد اذا رغبت ارسلت لك الكود الاصلي كاملا
omar elhosseini قام بنشر مايو 12, 2022 قام بنشر مايو 12, 2022 هل تقصد ان الفلترة حسب الأسبوع فقط ولا فلترة على الاسماء اخي شاهد المرفق المصنف3.xlsm
محمد يوسف ابو يوسف قام بنشر مايو 13, 2022 قام بنشر مايو 13, 2022 اخي نعم جرب هكذا ...... 1- افتح اي مصنف اكسل 2- افتح الملف المرفق في مثيل جديد لاكسل 3- جرب الكود
محمد ايمن قام بنشر مايو 13, 2022 الكاتب قام بنشر مايو 13, 2022 الاثنين معا أستاذ عمر اولا يتم الفلترة حسب الاسم ثم يتم احتساب الرصيد ( ما قبل الاسبوع الحالي ) ثم يتم اضافة فواتير الاسبوع الحالي ثم الاسم التالي و هكذا
محمد يوسف ابو يوسف قام بنشر مايو 14, 2022 قام بنشر مايو 14, 2022 بالفعل هذا ماتم عملة ولا توجد اي مشكلة لديا ... اخي.. انصحك ب ازالة نسخة الاوفيس ثم اعادة تشغيل جهازك -ثم تثطيب النسخة مرة اخري... بعدها ان لم تنجح لبد من اخذ خطوة اخري وهي تغير الملف ونقل البيانات اليه
محمد ايمن قام بنشر مايو 14, 2022 الكاتب قام بنشر مايو 14, 2022 لا اخي الكريم عمر الكود يفعل ذلك اذا كان مصنف اكسل اخر مفتوح قبل هذا الملف بشرط ان يكون مفتوح في مثيل جديد اما اذا كان الملف مفتوح لوحده لا توجد اي مشكلة
محمد ايمن قام بنشر مايو 15, 2022 الكاتب قام بنشر مايو 15, 2022 اخي عمر افتح اي مصنف اكسل ثم اضغط زر Alt + برنامج الاكسل نفسه ( ستظهر رسالة هل تريد بدء تشغيل مثيل جديد ل اكسل ) اختر نعم سيفتح برنامج الاكسل ( ملف - فتح ملف المثال ) ثم جرب الكود
محمد ايمن قام بنشر مايو 20, 2022 الكاتب قام بنشر مايو 20, 2022 ارجو التوضيح اخي عمر ... هل اتبعت الخطوات و لم تحدث معك مشكلة
محمد ايمن قام بنشر مايو 21, 2022 الكاتب قام بنشر مايو 21, 2022 ماهو اصدار الاكسل لديك استاذ عمر ؟ جربت كل الاصدارات من 2013 حتى 2021 وجربت كل المكاتب من الاصدار الثاني حتى 6.1 نفس المشكلة 😟
محمد ايمن قام بنشر مايو 21, 2022 الكاتب قام بنشر مايو 21, 2022 برنامج ultraviewer هو برنامج يتيح الاتصال و التحكم بين جهازي كمبيوتر
omar elhosseini قام بنشر مايو 21, 2022 قام بنشر مايو 21, 2022 الوينذوز عندي به بعض المشاكل ..سيكون الاتصال غير جيد ..سأخبرك بعد بضعة أيام حتي اركب ويندوز جديد وسأخبرك لعمل اتصال
omar elhosseini قام بنشر مايو 22, 2022 قام بنشر مايو 22, 2022 اخي ..لقد دققت في الكود الخاص بك جيدا وعملت كود يعطي نفس النائج ولكن بطريقة اخري نفذ الكود الخاص بي ونفذ الكود الخاص بك ودقق في النتائج ستجد انهم متطابقين تمام بعد عن تقنية ADO وهو سريع جدا ..واخبرنى هل زالت المشكلة ام لا المصنف4.xlsm 1
محمد ايمن قام بنشر مايو 22, 2022 الكاتب قام بنشر مايو 22, 2022 تحية طيبة استاذ @omar elhosseini بداية اشكرك جزيل الشكر على مساعدتك لي اما بعد تاكدت و بشكل قطعي من سبب مشكلة تكرار فتح الملف و السبب عند فتح اي مصنف اكسل يتم اضافته الى مدير المهام و عند فتح الملف الثاني بمثيل جديد يتم تسجيل الاكسل مرة ثانية في مدير المهام ( على عكس طريقة فتح المصنفات بشكل افتراضي حيث يتم تسجيل الاكسل في مدير المهام لمرة واحدة فقط ) لاحظ الاختلاف بين الصورتين وبالتالي عندما نصل في الكود الى سطر فتح الاتصال سيبحث عن اول عملية لاكسل و سيجد ان الملف غير مفتوح ( علما انه مفتوح ولكن في عملية جديدة و هذا ما سيؤدي الى فتح الملف مرة ثانية لكن للقراءة فقط ) ولا اعتقد انه يوجد حل لهذه المشكلة الا اذا كان ado او dao يدعم جلب البيانات بدون فتح الملف !!!! سبب رغبتي في استخدام ado هو امكانية استخدام عبارات sql لفلترة البيانات بشكل اسرع دون الدوران في مصفوفة طويلة عريضة لاستخلاص البيانات المطلوبة ( نحن نتكلم عن ما يقارب 11000 صف ) المرفق الذي ارسلته لي ممتاز و لكن اعتقد انك اغفلت نقطة هامة و هي : بعد احتساب الرصيد المدور من نهاية الاسبوع السابق يجب ان يتم تسجيل قيم الفواتير و الدفعات كل في صف جديد بينما المرفق الذي ارسلته يقوم باحتساب الرصيد النهائي فقط !!! لاحظ الصور قمت ببعض التعديلات و حصلت على النتيجة المطلوبة و لكنني غير راضي بصراحة لااني مازات اجد الكود بطيئ بعض الشي ( على عكس استخدام sql ) 😅 وفي الختام اكرر شكري لك
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.