أكاديمية الصقر للتدريب

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
مهند محسن ali mohamed ali-- لا تميز خلال هذه الفترة YasserKhalil الغاء اعمده مخفيه اكسيل اسئله واجابات


اعلان هنا
ألعاب فلاش أون لاين
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا


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





تنفيذ المعادلة من VBA بدلا من الخلية

السلام عليكم ورحمة الله وبركاته عندي مصنف الخزنة في شركتنا، وفيه يُكتب المبلغ ثم وصف المبلغ ثم القائم بالصرف، فأدرجت بي ..



03-12-2019 10:18 صباحا
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
السلام عليكم ورحمة الله وبركاته

عندي مصنف الخزنة في شركتنا، وفيه يُكتب المبلغ ثم وصف المبلغ ثم القائم بالصرف، فأدرجت بين المبلغ والوصف عمود لكتابة كود من قاعدة البيانات لدينا، واستعملت دالة VLOOKUP ولكن لكتابة وصف المبلغ في نفس الخلية المكتوب فيها اسم صاحب الكود عن طريق الدالة يكون أمرًا صعبا؛ إذ على الكاتب محو الدالة وكتابة الوصف.

فبالتالي كنت أريد كتابة هذه المعادلة في VBA وجعل الخلية فارغة لكتابة الوصف، ولكن ما إن كُتب الكود يقوم VBA بوضع اسم صاحب الكود في الخلية المخصصة للوصف، وطبعا يكون الأمر بشكل Dynamic بحيث أينما كُتب الكود يُكتب الاسم في الخلية المجاورة على اليسار.

وأنا لا أعرف كيف يمكن عمل هذا. فهلا ساعدتموني في ذلك؟ وجزاكم الله خير الجزاء

وإليكم مرفق ملفًا للتوضيح
 
 
  كود Vlookup.xlsx   تحميل xlsx مرات التحميل :(6)
الحجم :(25.636) KB





03-12-2019 10:33 صباحا
مشاهدة مشاركة منفردة [1]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
وعليكم السلام أخي الكريم
قرأت الموضوع مرتين لكي أحاول أن أجد طرف خيط لمعرفة المشكلة ولم أوفق
يرجى توضيح المشكلة باستخدام لغة الإكسيل كأن تقول ورقة العمل المسماة كذا وفي العمود كذا والصف كذا والخلية كذا .. والمعطيات كذا والمخرجات ستكون في الخلية كذا بالشكل كذا
وتضرب مثال أو مثالين ..كنتيجة متوقعة ليسهل تجربة الكود
وتأكد أن حل أي مشكلة بنسبة 90 % يكمن في فهم المشكلة 

أثارت هذه المشاركة إعجاب: ali mohamed ali، احمد شريف،



04-12-2019 01:33 مساء
مشاهدة مشاركة منفردة [2]
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
look/images/icons/upload/awt6.gif تنفيذ المعادلة من VBA بدلا من الخلية
المصنف المسمى كود VLOOKUP

عمود الجدول "الكود" الموجود في العمود B هو مخصص لكتابة كود موظف أو مورد أو عميل
عمود الجدول "الوارد" الموجود في العمود C هو مخصص لكتابة وصف المبلغ لصاحب الكود

المصنف المسمى DB

من A1 إلى B3 هذا هو النطاق الذي أريد آخذ منه المعلومات

إذا أردت كتابة المعادلة
=IFNA(VLOOKUP([@كود];'[DB.xlsx]1'!$A$1:$B$3;2;0);"")
في العمود "الوارد" وفي نفس الوقت كتابة أي وصف آخر يدويا فإنه صعب، وسيكون أمامي محو المعادلة لكتابة الوصف

فبالتالي أريد وضع هذه المعادلة داخل VBA وحينما أكتب الكود في عمود "الكود" يكتب اسم صاحب الكود في العمود "الوارد" وفي نفس الوقت الخلية نفسها في العمود "الوارد" فارغة لكتابة أي وصف آخر.. بمعنى إذا كُتب الكود يُكتب اسم صاحبه وإن لم يكتب فالخلية فارغة لكتابة أي شيء آخر في العمود "الوارد"
 
 
  كود Vlookup.xlsx   تحميل xlsx مرات التحميل :(4)
الحجم :(27.577) KB
  DB.xlsx   تحميل xlsx مرات التحميل :(6)
الحجم :(8.463) KB





04-12-2019 04:34 مساء
مشاهدة مشاركة منفردة [3]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
جرب الكود التالي في حدث ورقة العمل (كليك يمين على اسم ورقة العمل المسماة 1 في المصنف المسمى كود VLOOKUP) ثم View Code والصق الكود في موديول ورقة العمل
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B8:B50")) Is Nothing Then
        Application.EnableEvents = False
            Target.Offset(, 1).Value = Evaluate("IFNA(VLOOKUP(" & Target.Value & ",'[DB.xlsx]1'!$A$1:$B$3,2,0),"""")")
        Application.EnableEvents = True
    End If
End Sub

أثارت هذه المشاركة إعجاب: ali mohamed ali، احمد شريف،



04-12-2019 04:39 مساء
مشاهدة مشاركة منفردة [4]
ali mohamed ali
menu_open
مشرف على منتدى الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1419
الدولة : مصر
الجنس : ذكر
الدعوات : 1
يتابعهم : 0
يتابعونه : 57
قوة السمعة : 6414
الاعجاب : 1001
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
أحسنت استاذ ياسر كود ممتاز بارك الله فيك

أثارت هذه المشاركة إعجاب: YasserKhalil، احمد شريف،


توقيع :ali mohamed ali
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى حل أى مشكلة او أستفسار لديك مع إضافة رد بشكره
أو دعوة لمن قدم اليك المساعدة,فالجميع هنا يعمل على مساعدة
 الاخرين لوجه الله وان تحتسب له اجر عند الله

05-12-2019 09:26 صباحا
مشاهدة مشاركة منفردة [5]
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
look/images/icons/upload/awt9.gif تنفيذ المعادلة من VBA بدلا من الخلية
جزاك الله خيرا أ. ياسر.. هي اشتغلت بس فقط لما يكون مصنف "DB" مفتوح وإذا كان مغلق يعطي النتيجة #REF! فهل في طريقة لجعله يعمل حتى ولو كان المصنف "DB" مغلق؟




05-12-2019 09:29 صباحا
مشاهدة مشاركة منفردة [6]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
هل سيكون المصنف DB مغلق على الدوام أم سيكون مفتوح في بعض الأحيان؟

أثارت هذه المشاركة إعجاب: محمد أبو حفصة،



05-12-2019 10:11 صباحا
مشاهدة مشاركة منفردة [7]
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
مغلق على الدوام




05-12-2019 10:39 صباحا
مشاهدة مشاركة منفردة [8]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
وهل بعد عملية البحث تريد المصنف مفتوح ..؟ أم تريد إغلاقه ..؟
أقترح التعامل مع المصنف وهو مفتوح طالما أنك تريد التعامل مع الملف أكثر من مرة أو كفكرة يمكن فتح المصنف مرة واحدة وتخزين البيانات في مصفوفة في الذاكرة بحيث لا يتم فتح الملف أكثر من مرة .........
 

أثارت هذه المشاركة إعجاب: ali mohamed ali،



05-12-2019 11:04 صباحا
مشاهدة مشاركة منفردة [9]
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
هو بس أنا بتعامل مع مصنف "DB" على أساس إنه قاعدة بيانات، فبمجرد إني أملأ البيانات فيه مش هحتاج إني أفتحه إلا إذا كنت عاوز أضيف بيانات جديدة، وكمان في الكود اللي حضرتك عملته لو أعطى النتيجة REF فإنها لا تتغير حتى ولو فتحت مصنف "DB" وده معناه إني لازم أخليه مفتوح طوال الوقت. وأنا لست في حاجة لفتحه طوال الوقت




05-12-2019 04:14 مساء
مشاهدة مشاركة منفردة [10]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
جرب التعديل التالي عله يفي بالغرض ...
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wb As Workbook
    Const wbName As String = "DB.xlsx"
    
    If Not Intersect(Target, Range("B8:B50")) Is Nothing Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
            On Error Resume Next
                If wb Is Nothing Then
                    Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & wbName, ReadOnly:=True)
                Else
                    Set wb = Workbooks(wbName)
                End If
            On Error GoTo 0
            Target.Offset(, 1).Value = Evaluate("IFNA(VLOOKUP(" & Target.Value & ",'[DB.xlsx]1'!$A$1:$B$3,2,0),"""")")
            wb.Close False
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

أثارت هذه المشاركة إعجاب: ali mohamed ali، محمد أبو حفصة،



07-12-2019 09:57 صباحا
مشاهدة مشاركة منفردة [11]
محمد أبو حفصة
menu_open
عضو
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-01-2019
رقم العضوية : 11165
المشاركات : 12
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-6-1993
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 12
الاعجاب : 1
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
إنه قد أوفى بالغرض.. وإنك لرجل بارع بارك الله فيك 58

ولكن اسمح لي أن أعرف ماذا في هذا الكود، هناك أشياء فهمتها وأشياء لم أفهمها، فاشرح لي بعد إذنك ما يقول هذا الكود

وبارك الله فيك ضِعفا

أثارت هذه المشاركة إعجاب: YasserKhalil،



07-12-2019 10:24 صباحا
مشاهدة مشاركة منفردة [12]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 432
قوة السمعة : 24128
الاعجاب : 2595
 offline 
look/images/icons/i1.gif تنفيذ المعادلة من VBA بدلا من الخلية
بارك الله فيك أخي الكريم محمد
حاول دراسة الكود سطر بسطر باستخدام F8 لمعرفة كيفية تتبع الكود وإذا تعثرت في نقطة أو سطر لم تفهمه أخبرنا به وسنحاول توضيحه إن شاء الله ، مع العلم أن الكود بسيط ومباشر حيث يقوم بفتح المصنف المغلق ووضع المعادلة في العمود المجاور للخلية الهدف .. هذا كل ما في الأمر وبقية الأسطر تظبيط ليعمل الكود بكفاءة

أثارت هذه المشاركة إعجاب: ali mohamed ali،





المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
تعديل مسار بالمعادلة صلاح الصغير
16 542 YasserKhalil
استبدال المعادلة الموجودة بمعادلة أخف وأسهل مهند محسن
18 745 Eslam Abdullah
كيفية التغيير في نطاق المعادلة وزيادة المدى أبو يوسف النجار
3 609 YasserKhalil
تحويل المعادلة المستخدمة إلى كود أحمد يوسف
24 1331 Eslam Abdullah
ايه سبب ظهور الرمز#REF بعد عمل المعادلة وغلق الشيت وفتحه بودى مورا
2 1124 أباالحسن

الكلمات الدلالية
الخلية ، بدلا ، المعادلة ، تنفيذ ،


 







اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.

الساعة الآن 09:42 صباحا

أعلن هنا
أعلن هنا
أعلن هنا