اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تعديل على كود فى صفحة المخزن


إذهب إلى أفضل إجابة Solved by احمدزمان,

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

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

 

اريد عدم تكرار اسم السلعة ثانية أى اريد أن ينظر كود فورم ادخال السلع الى اسم السلعة الجديدة اذا كانت موجودة يضيف على عددها فى عمود العدد ولا يكرر اسمها ثانية هذا ما اريده 

و

تقبلوا جميعا تحياتى

 
Private Sub CommandButton1_Click()
' سنقوم بشرح مبسط جدا للكود ان شاء الله
'نقوم هنا اولا بوضع المعطيات الثابتى التي ستكون مرجعا لنا في الكود
'بعد ذلك
 
' iRow السطر التالي لتحديد مرجع العمود وهو هنا
Dim iRow As Long
 
'sh السطر التالي لتحديد مرجع الشيت المطلوب استخدامه وهو هنا
Dim Sh As Worksheet
'================================================
'ويمكن لنا تغيير المعطيات الثابتة لتكون كما نريد
'sh فمثلا يمكننا تغيير
'SH الي اي متغير مثلا
'================================================
' بطريقة بسيطة وسهله وبعيدا عن التعقيد والمصطلحات الكبيرة
'للتسهيل ليس الا ... واي استفسار الاكيد انني معكم دائما
'سأقوم بشرح الاكواد بابسط طريقة ممكنه
 
'السطر التالي معناه
'ان يجعل الشيت المطلوب استخدامه هو .... وهو هنا الشيت( )
'ويجب وضع اسم الشيت المراد ترحيل وتسجيل البيانات
' "" الموجودة بالفورم بين علامتي التنصيص كما في السطر التالي
Set Sh = Worksheets("SOURCE")
'================================================
' بعد تحديد اساسيات العمل وتحديد الصفحة المطلوب الترحيل اليها
' يجب علينا اولا تحديد الصف الفارع الذي سيتم تسجيل البيانات الجديدة به
'حتي لا يتم الكتابة علي صف واحد كل مرة ولعمل ذلك نقوم بالتالي ...
'================================================
' نقوم بعمل سطر بسيط للعثور علي اول سطر فارغ في الصفحة
' المختارة لعمل عملية الترحيل وهي هنا شيت رقم 2
' ولعمل ذلك نقوم بوضع السطر التالي ومعناه
'iRow اجعل
'sh في صفحة
' يساوي آخر صف في العمود رقم 1
' وبذلك تم تحديد العمود الاول للعثور علي اول سطر فارغ فيه
iRow = Sh.Cells(Rows.Count, 2) _
  .End(xlUp).Offset(1, 0).Row
 
'================================================
'سنقوم في السطور التاليه بوضع اكواد التسجيل او الترحيل
'وذلك بعد تحديد صفحة التسجيل وعمود البداية وتحديد او سطر فارغ فيه
'================================================
'ولترحيل البيانات نستخدم الاسطر التاليه
'وسنقوم بشرح السطر الاول والثاني فقط والباقي مثلهما تماماً
'================================================
 
Sh.Cells(iRow, 2).Value = Me.TextBox1.Value
' السطر السابق مقسم الي عدة اوامر وهي كالتالي
' sh اختيار صفحة الترحيل والتي تم اختيارها في بداية الكود
'Cells(iRow, 1).Value  هذا الجزء معناه ان قيمة الخليه رقم 1 في الصف الفارغ
' الذي يتم تحديده عن طريق الكود وفي العمود المختار تساوي
'Me.TextBox1.Value هذا الجزء من السطر يعني ان قيمة الخليه رقم 1 كما سبق تساوي
'Me قيمة تكس بوكس رقم 1 في الفورم المستخدم وكلمة
'تعني هنا اليوزفورم المستخدم
 
Sh.Cells(iRow, 3).Value = Me.TextBox2.Value
' السطر السابق مقسم الي عدة اوامر وهي كالتالي
' sh اختيار صفحة الترحيل والتي تم اختيارها في بداية الكود
'Cells(iRow, 2).Value  هذا الجزء معناه ان قيمة الخليه رقم 2 في الصف الفارغ
' الذي يتم تحديده عن طريق الكود وفي العمود المختار تساوي
'Me.TextBox2.Value هذا الجزء من السطر يعني ان قيمة الخليه رقم 2 كما سبق تساوي
'Me قيمة تكس بوكس رقم 2 في الفورم المستخدم وكلمة
'تعني هنا اليوزفورم المستخدم
'================================================
'وينطبق ذلك علي السطور التاليه مع تحديد الخليه المراد الترحيل لها
' قيمة التكست بوكس المطلوب في الفورم
'================================================
 
Sh.Cells(iRow, 4).Value = Me.TextBox3.Value
Sh.Cells(iRow, 5).Value = Me.TextBox4.Value
Sh.Cells(iRow, 6).Value = Me.TextBox5.Value
Sh.Cells(iRow, 10).Value = Me.TextBox6.Value
'================================================
'وبهذا تكون قد لنتهت عملية الترحيل حسب عدد التكستات الموجودة في الفورم
' والمطلوب تسجيلها او ترحيلها
'================================================
' ولتسجيل بيانات مرة اخري علي نفس الفورم وهو مفتوح نضع بعض الاسطر البسيطة
'لمسح البيانات القديمة من على الفورم بعد الترحيل للتجهيز لإدخال بيانات جديدة
' كما يلي
'================================================
'ولمسح البيانات القديمة نستخدم الاسطر التاليه
'وسنقوم بشرح السطر الاول فقط والباقي مثله تماماً
'================================================
Me.TextBox1.Value = ""
' السطر السابق معناه ان يجعل قيمة التكست بوكس 1 تساوي لاشئ
'Me كلمه
' تعني الفورم نفسه المستخدم في التسجيل والترحيل كما سبق ذكره
'TextBox1.Value وهذا الجزء يعنس قيمة التكست بوكس 1
' = ""   وهذا الجزء يعني ان قيمة التكست بوكس 1 تساوي لاشئ
' حيث ان علامتي التنصيص تعني فراغ او لا شئ
'================================================
'وينطبق ذلك علي السطور التاليه مع تحديد التكست بوكس المراد مسح البيانات الموجوة به
' وما هنا في مثالنا كالتالي
'================================================
 
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
'================================================
'وبعد مسح البيانات نقوم بوضع جزء بسيط لتحديد التكست بوكس المراد بداية التسجيل منه
' وذلك بوضع مؤشر الكتابه في التكست بوكس المراد الادخال منه
'================================================
'ويتم ذلك عن طريق السطر التالي
' وفيه نحدد ان التكست بوكس 1 هو اساس بداية الادخال بعد مسح البيانات
Me.TextBox1.SetFocus
' السطر التالي هو اقفال الكود ونهاية مهمة الزر المحدد
'والمستخدم لعملية التسجيل او الترحيل
End Sub
 
Private Sub CommandButton2_Click()
End
End Sub
 
Private Sub TextBox1_Change()
Me.TextBox1.Value = Format(Date, "yyyy/mm/dd")
End Sub

 

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

السلام عليكم

 

اخي الكريم في ورقة المخزون نجعل الخلايا المخفية AB2 , AB3

لعملية الحساب و التأكد من وجود الصنف سابقا وفي حالة وجود الصنف يقوم باعطائنا رقم السطر الموجود به الصنف - واذا كان الصنف غير موجود يعطينا النتيجة FALSE

 

لذلك

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


Private Sub TextBox2_Change()
Sheets("ÇáãÎÒä").Range("ab2") = TextBox2.Text
End Sub

ونضع الدالة التالية في AB3

=IF(ISERROR(MATCH($AB$2;$C$1:$C$9999;0));FALSE;MATCH($AB$2;$C$1:$C$9999;0))

ثم نعدل في كود الإضافة رقم السطر IROW كــ التالي

If Sh.Range("ab3") = False Then
iRow = Sh.Cells(Rows.Count, 2) _
  .End(xlUp).Offset(1, 0).Row
Else
iRow = Sh.Range("ab2")
End If

مع التحية

 

 

حاولت اطبق ذلك على الملف المرفق منك

ولكن لم استطع

 

حيث ان الكود لا يتبع نفس الملف ولا نفس اسم الورقة

 

تحياتي

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

اخى واستاذى لقد نفذت  السابق ولكن لم يعمل معى 

ادرجت الى سيادتكم مرفق به توضيح طلبى 

ارجو المساعدة وسعة الصدر

تقبلوا تحياتى

تم تعديل بواسطه هانى ابو ادهم
رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم

 

تم المطلوب

و

استبدلنا TEXTBOX2 بــ COMPOBOX

وفعلنا به خاصية الإكمال التلقائي

وذلك لتسهيل عملية الإدخال

 

جرب

اصبح امامك قائمة منسدلة تختار منها الصنف

او

اكتب اول حرف من الصنف يظهر لك تلقائيا

 

 

Book2.rar

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

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