طارق_طلعت قام بنشر نوفمبر 7, 2015 قام بنشر نوفمبر 7, 2015 السادة الخبراء المرفق ملف بة كود من تصميم العلامة الأخ ياسر خليل و هو يقوم بأستدعاء جميع الفواتير الخاصة بعميل معين خلال شهر معين و ذلك بكتابة كود العميل بالخلية A3 و رقم الشهر بالخلية C3 و فى حالة عدم كتابة رقم الشهر فأنة يقوم بأستدعاء جميع الفواتير التى تخص العميل و الكود يعمل بشكل ممتاز و لكن عندما يتم طلب استدعاء فواتير خاصة بعميل لة عدد كبير من الفواتير فأنة يقوم بأستدعاء جزء فقط من الفواتير و ليس جميع الفواتير الخاصة بهذا العميل فمثلا عندما يتم طلب استدعاء فواتير العميل الذى كودة 1-300 و الذى لدية عدد 45 فاتورة فأنة يقوم بأستدعاء اول 32 فاتورة فقط و ليس جميع الفواتير برجاء التجربة على الكود 1-300 و 2-300 حبث انهم لهم العدد الأكبر من الفواتير حاولت جاهدا معرفة السبب فلم اتمكن من معرفة السبب شكرا جزيلا للمساعدة استدعاء فاتورة.rar
طارق_طلعت قام بنشر نوفمبر 8, 2015 الكاتب قام بنشر نوفمبر 8, 2015 ارجو من الاخوه الافاضل المساعده حيث اننى احتاج هذا الكود بشده فى عملى و لكم جزيل الشكر
طارق_طلعت قام بنشر نوفمبر 9, 2015 الكاتب قام بنشر نوفمبر 9, 2015 الأستاذ القدير ياسر خليل ابو البراء ارجو التكرم بالنظر فى حل مشكلتى كعهدك دائما حيث انك الذى تكرمت بتصميم هذا الكود الجميل و قد قمت بأرفاق الملف مرة اخرة بعد تخفيض عدد الفواتير و اختصارها فى عدد 100 فاتورة فقط لعميل واحد فقط حتى يسهل بحث المشكلة و كما ترى انة عند طلب استدعاء فواتير هذا العميل جميعها فأن الكود يقوم بأستدعاء عدد 38 فاتورة فقط و ليس ال 100 فاتورة الخاصة بالعميل حاولت جاهدا ان افهم سبب المشكلة و لكن للأسف لم استطيع حيث ان الكود مصمم بطريقة المصفوفات الذى لا افهمة تماما و أخيرا اسف للأطالة و شاكر جهودك الغالية التى مكنتنى من عمل برنامج قوى للحسابات و المخازن بفضل مساعدتك لى استدعاء فاتورة.rar
ياسر خليل أبو البراء قام بنشر نوفمبر 9, 2015 قام بنشر نوفمبر 9, 2015 Sub GrabBills() Dim rFind As Range, sAddr As String, Rng As Range, RngDel As Range, SH As Worksheet, R As Range, WS As Worksheet, VarList Set SH = Sheets("استدعاء فاتورة") Set WS = Sheets("فاتورة") VarList = SH.Range("A3").Value Application.ScreenUpdating = False SH.UsedRange.Offset(3).Clear If IsEmpty(SH.Range("A3")) Then MsgBox "أدخل كود العميل المطلوب استدعاء فواتيره", 64: Exit Sub With WS.Columns(3) Set rFind = .Find(VarList, LookIn:=xlValues, LookAt:=xlWhole) If IsEmpty(SH.Range("C3")) Then If Not rFind Is Nothing Then sAddr = rFind.Address Set RngDel = rFind.CurrentRegion Do Set RngDel = Union(RngDel, rFind.CurrentRegion) Set rFind = .FindNext(rFind) Loop While rFind.Address <> sAddr sAddr = "" End If Else If Not rFind Is Nothing Then sAddr = rFind.Address Do If Month(rFind.Offset(-3, -1)) = SH.Range("C3") Then If RngDel Is Nothing Then Set RngDel = rFind.CurrentRegion Else Set RngDel = Union(RngDel, rFind.CurrentRegion) End If End If Set rFind = .FindNext(rFind) Loop While rFind.Address <> sAddr sAddr = "" End If End If End With If Not RngDel Is Nothing Then RngDel.Copy SH.Range("A5") End If Set rFind = Nothing Set RngDel = Nothing Set SH = Nothing Application.ScreenUpdating = True End Sub أخي الكريم طارق طلعت يرجى عدم توجيه الموضوع لعضو بعينه ..لما يمنع الخير عن نفسك ..فلربما كان لدى أحد الأخوة الأفاضل بالمنتدى حل أفضل من الذي قد أقدمه ..أو لربما أعجز عن تقديم المساعدة لأي سبب كان عموماً ..إليك الكود التالي وإن شاء الله يفي بالغرض ويعمل مع كود العميل ومع الشهر إذا أردت التعامل مع شهر معين في الخلية C3 Grab Bills YasserKhalil.rar 1
طارق_طلعت قام بنشر نوفمبر 9, 2015 الكاتب قام بنشر نوفمبر 9, 2015 الأخ القدير ياسر خليل اشكرك شكرا جزيلا على هذا الكود الرائع و اعتذر عن ذكر اسمك الكريم فى عنوان الموضوع و الذى لم اقصد بة توجية الموضع لشخصك الكريم و لكنى قصدت ان الكود من تصيمك و هذا حقك الأدبى و عند عدم رد اى من الأخوة الخبراء بالمنتدى فقمت بتوجية الطلب لسيادتكم لمعرفتكم بالكود الذى قمت بتصميمة كنت اتمنى ان اعرف لماذا لم يعمل الكود السابق بشكل سليم حيث اننى حاولت جاهدا فهم المشكلة و لكنى لم اتمكن فأذا سمح وقت سيادتكم بأعلامى بسبب المشكلة اكون شاكر جدا لكرمك مرة اخرى شكرا جزيلا 1
ياسر خليل أبو البراء قام بنشر نوفمبر 9, 2015 قام بنشر نوفمبر 9, 2015 أخي الحبيب طلعت لا داعي للاعتذار ..أردت فقط التنويه ..لا أكثر ولا أقل .. بالنسبة للمشكلة .. فإن سببها أنني اعتمدت في المرة الأولى على دالة معرفة لاستخراج العناوين التي تطابق عملية البحث .. واكتشفت بعد طرح الموضوع في منتدى أجنبي أن المخرجات من هذه الدالة يجب ألا تزيد عن 255 حرف ... فالعناوين للـ 46 فاتورة يتعدي عدد حروفها 255 .. ولذلك لم تظهر غير 32 فاتورة كما ذكرت .. العنوان بيكون بهذا الشكل $C$243 على سبيل المثال (طول العنوان بهذا الشكل يساوي 6) وبالتالي عند وصول الخلايا للعنوان مثلاً $C$1945 يكون طول العنوان (7) المهم أن الدالة تكتفي بما يقارب 255 حرف وبقية العناوين لا يتم التعامل معها .. ظهرت المشكلة معك بعد كبر حجم الملف ... أتمنى أن يكون الكود الجديد وافي بالغرض تقبل تحياتي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.