بسولي قام بنشر يناير 28, 2005 مشاركة قام بنشر يناير 28, 2005 السلام عليكم اقدم اعتذاري واسفي الشديد الى الإخوة المشرفين على هذا المنتدى على ماحتوته مشاركتي التالية من اخطاء او اي تجاوزات لشروط المشاركة بالمنتدى ولكني والله يعلم بذلك لاادري ماهو الخطاء الحاصل لذلك ارجو تنويهي الى الخطأ حتى لااقع فيه مرة اخرى واستأذنكم في وضع المشاركة مرة اخرى حتى يتم تحديد الخطاء ليتم تصحيحه شاكرالكم مقدما اهتمامكم المشاركة هي السلام عليكم اخواني لدي مشكلة صغيره ..... وانا واثق ان لديكم الحل (( بإذن الله )) المشكلة هي : لدي عمود به رقم الموظف وعمود به الأسماء ( 20 اسماً فرضاً ) ولدي 12 عمود يمثل كل عمود شهر من اشهر السنة اريد ادخال المبلغ الذي حصله كل موظف امام الخلية التي تمثل الشهر....... ولكن اريد رسالة ادخال تطلب رقم الموظف ورسالة ادخال الشهر ( رقم ) ورسالة ادخال المبلغ ليتم وضع المبلغ في الخلية التي تشير الى الموظف مع الشهر المدخل ولكم خالص الشكر والتقدير رابط هذا التعليق شارك More sharing options...
محمد حجازي قام بنشر يناير 29, 2005 مشاركة قام بنشر يناير 29, 2005 السلام عليكم ... هذا الكود و المدخلات جميعها أرقام (كما طلبت) : Sub Salary() Dim NumberEmployee As Long Dim NumberMonth As Integer Dim Salary As Double NumberEmployee = Application.InputBox(prompt:="أدخل رقم الموظف", Title:="رقم الموظف", Type:=1) NumberMonth = Application.InputBox(prompt:="أدخل رقم الشهر", Title:="رقم الشهر", Type:=1) Salary = Application.InputBox(prompt:="أدخل قيمة الراتب", Title:="الراتب", Type:=1) If NumberEmployee = False Or NumberMonth = False Or Salary = False Then Exit Sub Else Set Employee = Sheets("Sheet1").Range("A1:A100").Find(NumberEmployee) Sheets("Sheet1").Cells(Employee.Row, NumberMonth + 2).Value = Salary End If End Sub ولكن انتبه للملاحظات التالية : - لقد وضعت مجال أرقام الموظفين A1:A100 ، ويمكنك تغييره كما تشاء (في السطر العاشر من الكود). - لقد اعتبرت أن الأشهر تبدأ من العامود الثالث ، ويمكنك تغييره (في العامود 11 من الكود) بتعديل الرقم 2 (و الذي يمثل عدد الأعمدة الموجودة أمام عامود أول شهر) إلى أي رقم آخر. - في حال تطابق رقمي موظفين ، يقوم الاكسل بإسناد الراتب لأول موظف يجده ؛ أنصحك هنا باستخدام قاعدة التحقق من الصحة Validation من إجل تفادي هذه الإشكالية. رابط هذا التعليق شارك More sharing options...
فلسطيني قام بنشر يناير 29, 2005 مشاركة قام بنشر يناير 29, 2005 كل التحية و التقدير أخ محمد حجازي السؤال هل يمكن تعديل الكود السابق بحيث يطلب اسم الموظف بدلا من رقمه ؟ شاكرين لكم جهودكم الرائعة رابط هذا التعليق شارك More sharing options...
محمد حجازي قام بنشر يناير 29, 2005 مشاركة قام بنشر يناير 29, 2005 السلام عليكم ... عندي صديق يقول لي أن لغة البرمجة يمكنها عمل أي شيئ :d على أية حال وبغض النظر عن قناعتي بمقولة صديقي ، فإنه يمكنك فعل ذلك بتغيير بسيط في الكود : Sub Salary() Dim NameEmployee As String Dim NumberMonth As Integer Dim Salary As Double NameEmployee = Application.InputBox(prompt:="أدخل اسم الموظف", Title:="اسم الموظف", Type:=2) NumberMonth = Application.InputBox(prompt:="أدخل رقم الشهر", Title:="رقم الشهر", Type:=1) Salary = Application.InputBox(prompt:="أدخل قيمة الراتب", Title:="الراتب", Type:=1) If NameEmployee = "False" Or NumberMonth = False Or Salary = False Then Exit Sub Else Set Employee = Sheets("Sheet1").Range("B1:B100").Find(NameEmployee) Sheets("Sheet1").Cells(Employee.Row, NumberMonth + 2).Value = Salary End If End Sub ملاحظة : افترضت أن أسماء الطلاب موجودة في العامود الثاني بالتوفيق رابط هذا التعليق شارك More sharing options...
فلسطيني قام بنشر يناير 29, 2005 مشاركة قام بنشر يناير 29, 2005 دمت لنا أخ محمد نبراسا و علما ، تعجز الكلمات عن تقدير مجهوداتك رابط هذا التعليق شارك More sharing options...
بسولي قام بنشر يناير 31, 2005 الكاتب مشاركة قام بنشر يناير 31, 2005 اشكرك اخي الكريم ولي طلب اذا تكرمت حتى تصبح عملية الإدخال اكثر دقة هل يمكن تحديد ارقام الموظفين .... بمعنى يظهر رسالة خطأ اذا كان رقم الموظف لايقع بين 10 و 15 مثلاً يظهر رسالة خطأ اذا كان قم الشهر لايساوي الرقم الموجود في الخلية B2 مثلاً يظهر رسالة خطأ اذا كان الراتب لايساوي 1000 أو 2000 وشكر لك اولاً واخراً ...... وبارك الله في علمك رابط هذا التعليق شارك More sharing options...
محمد حجازي قام بنشر يناير 31, 2005 مشاركة قام بنشر يناير 31, 2005 السلام عليكم ... تفضل الكود : Sub Salary() Dim NumberEmployee As Long Dim NumberMonth As Integer Dim Salary As Double NumberEmployee = Application.InputBox(prompt:="أدخل رقم الموظف", Title:="رقم الموظف", Type:=1) NumberMonth = Application.InputBox(prompt:="أدخل رقم الشهر", Title:="رقم الشهر", Type:=1) Salary = Application.InputBox(prompt:="أدخل قيمة الراتب", Title:="الراتب", Type:=1) If NumberEmployee = False Or NumberMonth = False Or Salary = False Then Exit Sub ElseIf NumberEmployee < 10 Or NumberEmployee > 15 Then MsgBox prompt:="رقم الموظف يجب أن يكون أكبر أو يساوي 10 و أصغر أو يساوي 15", Title:="خطأ" Exit Sub ElseIf NumberMonth <> Sheets("Sheet1").Range("B2").Value Then MsgBox prompt:="رقم الشهر يجب أن يساوي الرقم الموجود في الخلية B2", Title:="خطأ" Exit Sub ElseIf Salary <> 100 And Salary <> 200 Then MsgBox prompt:=" الراتب يجب أن يكون إما 100 أو 200", Title:="خطأ" Exit Sub Else Set Employee = Sheets("Sheet1").Range("A1:A100").Find(NumberEmployee) Sheets("Sheet1").Cells(Employee.Row, NumberMonth + 2).Value = Salary End If End Sub رابط هذا التعليق شارك More sharing options...
بسولي قام بنشر فبراير 1, 2005 الكاتب مشاركة قام بنشر فبراير 1, 2005 اشكرك اخي الكريم شكراً جزيلاً الكود يعمل على مايرام (y) واذا سمح لي كرمك باستفسار اخير حتى نكون الفائدة اعم واشمل السطر التالي Set Employee = Sheets("Sheet1").Range("A1:A100").Find(NumberEmployee) حسب مافهمت منه انه يلتقط الرقم المدخل NumberEmployee ليضعه في السطر الذي يليه سؤالي هل يمكن عمل نفس الشئ مع رقم الشهر ( العمود ) اسمح لي ان اوضح اكثر افرض ان ارقام الأشهر غير مرتبة ( الشهر رقم 5 موجود مكان الشهر 1 مثلا ) واردت ادخال الراتب في الشهر 5 هل يمكنني كتابة رقم 5 فقط اذا طلب ادخال رقم الشهر كم نفعل مع الصفوف اي باختصار شديد اريد ادخال الرقم الموجود في ايخلية من خلايا العمودالمحدد ثم ادخال الرقم الموجود في اي خلية من خلايا الصف المحدد ثم ادخل الراتب ليوضع في تقاطعهما ارجو ان يكون السؤال واضح :pp: رابط هذا التعليق شارك More sharing options...
محمد حجازي قام بنشر فبراير 1, 2005 مشاركة قام بنشر فبراير 1, 2005 السلام عليكم ... الكود التالي يبحث عن رقم الشهر في المجال A1:N1 : Sub Salary() Dim NumberEmployee As Long Dim NumberMonth As Integer Dim Salary As Double NumberEmployee = Application.InputBox(prompt:="أدخل رقم الموظف", Title:="رقم الموظف", Type:=1) NumberMonth = Application.InputBox(prompt:="أدخل رقم الشهر", Title:="رقم الشهر", Type:=1) Salary = Application.InputBox(prompt:="أدخل قيمة الراتب", Title:="الراتب", Type:=1) If NumberEmployee = False Or NumberMonth = False Or Salary = False Then Exit Sub ElseIf NumberEmployee < 10 Or NumberEmployee > 15 Then MsgBox prompt:="رقم الموظف يجب أن يكون أكبر أو يساوي 10 و أصغر أو يساوي 15", Title:="خطأ" Exit Sub ElseIf NumberMonth <> Sheets("Sheet1").Range("B2").Value Then MsgBox prompt:="رقم الشهر يجب أن يساوي الرقم الموجود في الخلية B2", Title:="خطأ" Exit Sub ElseIf Salary <> 100 And Salary <> 200 Then MsgBox prompt:=" الراتب يجب أن يكون إما 100 أو 200", Title:="خطأ" Exit Sub Else Set VMonth = Sheets("Sheet1").Range("A1:N1").Find(NumberMonth) Set Employee = Sheets("Sheet1").Range("A1:A100").Find(NumberEmployee) Sheets("Sheet1").Cells(Employee.Row, VMonth.Column).Value = Salary End If End Sub رابط هذا التعليق شارك More sharing options...
بسولي قام بنشر فبراير 2, 2005 الكاتب مشاركة قام بنشر فبراير 2, 2005 شاكر لك اخي محمد (y) الكود يعمل بشكل صحيح :d ولكن الأفكار تتوالد يوم بعد يوم :( كلي امل ان يتسع لها ولنا صدرك الرحب يالله قل وش تبي ....... ابشر اخوي محمد اريد كرماً لا امرا تذكر معي ان الأعمد الموجودة هي عمود لرقم الموظف ثم عمود لإسم الموظف ثم مجموعة من الأعمدة للشهور ...... طيب وش المطلوب المطلوب اظهار رسالة ( للتأكد ) تبين اسم الموظف الذي ادخلنا له البيانات ، فإذا كان الأسم مطابق لرقم الموظف يتم وضع الراتب والاخروج او يتم الإدخال من جديد ولك خالص الشكر والعرفان رابط هذا التعليق شارك More sharing options...
محمد حجازي قام بنشر فبراير 2, 2005 مشاركة قام بنشر فبراير 2, 2005 السلام عليكم ... الكود : Sub Salary() Dim NumberEmployee As Long Dim NumberMonth As Integer Dim Salary As Double Dim Result As Integer NumberEmployee = Application.InputBox(prompt:="أدخل رقم الموظف", Title:="رقم الموظف", Type:=1) NumberMonth = Application.InputBox(prompt:="أدخل رقم الشهر", Title:="رقم الشهر", Type:=1) Salary = Application.InputBox(prompt:="أدخل قيمة الراتب", Title:="الراتب", Type:=1) If NumberEmployee = False Or NumberMonth = False Or Salary = False Then Exit Sub ElseIf NumberEmployee < 10 Or NumberEmployee > 15 Then MsgBox prompt:="رقم الموظف يجب أن يكون أكبر أو يساوي 10 و أصغر أو يساوي 15", Title:="خطأ" Exit Sub ElseIf NumberMonth <> Sheets("Sheet1").Range("B2").Value Then MsgBox prompt:="رقم الشهر يجب أن يساوي الرقم الموجود في الخلية B2", Title:="خطأ" Exit Sub ElseIf Salary <> 100 And Salary <> 200 Then MsgBox prompt:=" الراتب يجب أن يكون إما 100 أو 200", Title:="خطأ" Exit Sub Else Set VMonth = Sheets("Sheet1").Range("A1:N1").Find(NumberMonth) Set Employee = Sheets("Sheet1").Range("A1:A100").Find(NumberEmployee) Result = MsgBox("الموظف هو " & Sheets("Sheet1").Cells(Employee.Row, 2).Value, vbYesNo, "الموظف الناتج عن البحث") If Result = vbYes Then Sheets("Sheet1").Cells(Employee.Row, VMonth.Column).Value = Salary End If End If End Sub رابط هذا التعليق شارك More sharing options...
بسولي قام بنشر فبراير 3, 2005 الكاتب مشاركة قام بنشر فبراير 3, 2005 السلام عليكم اخي الكريم انا عاجز عن الشكر فلك مني خالص الشكر والعرفان وبارك الله فيك وفي علمك وملك وولدك ورزقك الفردوس الأعلى رابط هذا التعليق شارك More sharing options...
الردود الموصى بها