محمد حجازي
المشرفين السابقين-
Posts
771 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
2
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محمد حجازي
-
السلام عليكم ... ملف اكسل يصلح للمحال الصغيرة ، حيث من الممكن تخصيص ورقة لكل زبون SimpleAccount.zip
-
طلب ظهور رسائل ثم ترحيل البيانات للخلايا المحدده
محمد حجازي replied to بسولي's topic in منتدى الاكسيل Excel
السلام عليكم ... تفضل الكود : 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 -
السلام عليكم ... هذا تعديل ولكن لا يرقى لما هو مطلوب ، حيث بقيت مشكلة تكرار نفس الرقم في أكثر من شهر Electricity.zip
-
عمل تصمصيم لفاتورة وترحيل بيانات هذه الفاتورة طبقا
محمد حجازي replied to fofolofo2003's topic in منتدى الاكسيل Excel
السلام عليكم ... تفضل المرفق : وتذكر أن الكود ينقل فقط القيم وليس التنسيقات ، وإذا كنت تريد نقل التنسيقات فأخبرمني MoveValue.zip -
التبديل بين قيمتي خليتين بواسطة الكود
محمد حجازي replied to محمد حجازي's topic in منتدى الاكسيل Excel
السلام عليكم ... بالنسبة للإجراء SwapCells4 فهو يعتمد على العلاقة المنطقية Xor العلاقة المنطقية Xor (أو المانع = eXclusive OR) تشبه إلى حد كبير العلاقة المنطقية Or ( أو ) ، ولكن بشروط خاصة ، حيث يتحقق جواب الشرط إذا تحقق أحد الشرطين فقط ، مثال: Sub Test() Dim Qestion1 As Integer Dim Qestion2 As Integer Qestion1 = MsgBox("هل تؤدي فريضة الصلاة", vbYesNo, "هل تقوم بالصلاة؟") Qestion2 = MsgBox("هل تؤدي فريضة الزكاة", vbYesNo, "هل تقوم بالزكاة؟") If Qestion1 = vbYes Xor Qestion2 = vbYes Then MsgBox prompt:="مقصر ، تدارك الوضع", Title:="النتيجة" ElseIf Qestion1 = vbNo And Qestion2 = vbNo Then MsgBox prompt:="أنت في خطر ، عد إلى الله", Title:="النتيجة" Else MsgBox prompt:="ممتاز ، تابع وفقك الله", Title:="النتيجة" End If End Sub نلاحظ من المثال المبسط السابق أن الرسالة (مقصر ، تدارك الوضع) تظهر في حال تحقق أحد الشرطين وعدم تحقق الشرط الآخر. هذا استعمال للتعليمة Xor ، ولكن هل يوجد استعمال آخر لها؟!!! نعم هناك صيغة مختصرة ، انظر للكود : Sub mah() Dim Number As Integer Number = 10 Xor 9 MsgBox Number End Sub قيمة المتغير Number الناتجة عن الإجراء mah هي 3 ، لماذا؟ في هذه الصيغة (الصيغة المختصرة) تقوم التعليمة Xor بالتعامل مع العددين 9 و 10 وفق نظام العد الثنائي Binary ، حيث يتم جعل كل بت من الوجهة مساوياً للواحد إذا كانت العلاقة المنطقية Xor محققة ويتم جعله مساوياً للصفر في حالة عدم تحقق العلاقة المنطقية Xor ؛ وللتوضيح انظر التمثيل التالي للمسألة السابقة: العدد / نظام العد : العدد في النظام العشري ، العدد في النظام الثنائي العدد الأول______________10__________________1010 العدد الثاني_____________ 9 __________________1001 النتيجة ________________3 __________________0011 الميزة في استخدام التعليمة Xor في عملية الـ Swap تكمن بالقدرة على التحكم في الـ Binary و الاكتفاء بذلك مما يغنينا عن القيام بمعالجات تستهلك موارد النظام. أرجو أن أكون قد وفقت في إيصال المعلومة مرفق ملف يقوم بتمثيل عملية الـ Swap باستخدام التعليمة Xor ، و الملف يحتاج لتفعيل الوظيفة الإضافية Analysis ToolPak . تحياتي Xor.zip -
ِِِِِِِِشرح لكيفية تكرار ماكرو علي مجموعة خلايا
محمد حجازي replied to محمد طاهر عرفه's topic in منتدى الاكسيل Excel
السلام عليكم ... الموضوع متصل بالكود الموضوع لاختبار الخلايا ، وفي كلتا الأحوال سيكون استخدام الحلقة التكرارية بالاعتماد على متغير (كديل) أقل كفاءة من استخدام الحلقة For Each -
طلب ظهور رسائل ثم ترحيل البيانات للخلايا المحدده
محمد حجازي replied to بسولي's topic in منتدى الاكسيل Excel
السلام عليكم ... عندي صديق يقول لي أن لغة البرمجة يمكنها عمل أي شيئ :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 ملاحظة : افترضت أن أسماء الطلاب موجودة في العامود الثاني بالتوفيق -
السلام عليكم ... هل تقصد تلوين جزء من الصيغة عند ظهورها في شريط الصيغة؟!!!!
-
ِِِِِِِِشرح لكيفية تكرار ماكرو علي مجموعة خلايا
محمد حجازي replied to محمد طاهر عرفه's topic in منتدى الاكسيل Excel
السلام عليكم ... بالنسبة للحلقة التكرارية ، ألا يكون من الأفضل استخدام For Each وذلك لأننا بها تحقق ميزتين : - عدم الحاجة لتفعيل الخلية المختبرة في كل دورة (في المثال أعلاه). - عدم الحاجة لتغيير قيمة المتغير الدال على الهدف المختبر في كل دورة. -
طلب ظهور رسائل ثم ترحيل البيانات للخلايا المحدده
محمد حجازي replied to بسولي's topic in منتدى الاكسيل Excel
السلام عليكم ... هذا الكود و المدخلات جميعها أرقام (كما طلبت) : 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 من إجل تفادي هذه الإشكالية. -
السلام عليكم ... لم أعرف قصدك بالتحديد ؟!!! . إذا كنت تقصد تغيير تنسيق الخلية بالاعتماد على شرط فابحث في قسم الخلاصات عن "التنسيق الشرطي"
-
أريد أن أرفق مجموعة من الكواد للورقة الرئيسة
محمد حجازي replied to jakord's topic in منتدى الاكسيل Excel
السلام عليكم ... تم تعديل الملف ولله الحمد . تبقى مشكلة الصوت ، راجع الرابط التالي : http://www.officena.net/ib/index.php?showtopic=5311 list.zip -
أريد أن أرفق مجموعة من الكواد للورقة الرئيسة
محمد حجازي replied to jakord's topic in منتدى الاكسيل Excel
السلام عليكم ... أرفق المثال يا أخي في قسم التحميل المؤقت لأضيفه الأكواد فيه -
السلام عليكم ... الأخ حسام نور ، تفضل المثال كما طلبت : SelectSheets1.zip
-
كود لاظهار صوت عند تغير الخلية بقيمة معينة
محمد حجازي replied to lord's topic in منتدى الاكسيل Excel
السلام عليكم ... الموضوع ليس بهذه البساطة يا أخ lord وتعديل الكود يتطلب القيام بمايلي : - تعديل الإجراء السابق إلى روتين فرعي ووضعه في الـ Moudel. - إضافة الحلقة التكرارية For Each من إجل اختبار كل خلية موجودة ضمن المجال الذي يحتوي على خلايا النتيجة (العامود المحدد) ونقل صفها في حال تحقق الشرط. الكود الناتج : Sub CopyRows() Dim EndRow As Long For Each ResultCell In Sheets(1).Columns(4).Cells If ResultCell.Value = "ناجح" Then Sheets(1).Rows(ResultCell.Row).Copy EndRow = Sheets(2).Range("A1").CurrentRegion.Rows.Count Sheets(2).Rows(EndRow + 1).Insert Shift:=xlDown End If Next ResultCell Sheets(1).Select End Sub مع ملاحظة أنك تستطيع تغيير رقم العامود الذي يحتوي على خلايا النتيجة من السطر الثاني في الكود. تحياتي -
تكشفت وقائع مفاجأة مدوية في الأوساط "الانترنتيـة" ، فبعد أن ظـــل الاعتقاد سائدا لسنوات طويلة أن الملياردير الأمريكي بيل جيتس ، المصنف كأغنى رجل في العالم ، هو المخترع العبقري الفذ للبريد الساخن "الهوت ميل" ، كشفت دوائر إعلامية أمريكية سراً خطيراً بعد ما أكدت وجود مخترع هندي وراء ظهور الهوت ميل .. نعم لا تتعجبون فالمخترع ليس امريكي بل هو هندي. المعروف أن البريد الساخن (hotmail) هوتميل هو أكثر ما يستخدم من أنواع البريد حول العالم وهو تابع لشركة ميكروسوفت الأمريكيه وهو ضمن باقة ويندوز التشغيليه. وخلف هذا البريد الساخن قصة نجاح شخصيه يذكرها موقع مجلة ستار تايمز على الانترنت وخصوصا أن بطلها مسلم . فصاحب هذا الاختراع هو المسلم الهندي : صابر باتيا. ففي عام 1988 جاء صابر إلى أمريكا للدراسة في جامعة ستنافورد وقد تخرج بامتياز مما أهله للعمل لدى إحدى شركات الانترنت مبرمجا وهناك تعرف على شاب تخرج من نفس الجامعة يدعى : جاك سميث. وقد تناقشا كثيرا في كيفية تأسيس شركتهما للحاق بركب الانترنت وكانت مناقشاتهما تلك تتم ضمن الدائرة الاليكترونية المغلقة الخاصة بالشركة التي يعملان بها وحين اكتشفهما رئيسهما المباشر حذرهما من استعمال خدمة الشركة في المناقشات الخاصة عندها فكر (صابر) بابتكار برنامج يوفر لكل إنسان بريده الخاص وهكذا عمل سراً على اختراع البريد الساخن وأخرجه للجماهير عام 1996 وبسرعة انتشر البرنامج بين مستخدمي الانترنت لأنه وفر لهم أربع ميزات لا يمكن منافستها والمميزات هي كما يلي : (1) إن هذا البريد مجاني (2) فردي (3) سري (4) ومن الممكن استعماله من أي مكان بالعالم. وحين تجاوز عدد المشتركين في أول عام العشرة ملايين بدأ يثير غيرة ( بيل جيتس) رئيس شركة ميكروسوفت ، المصنف كأغنى رجل في العالم ، وهكذا قررت ميكروسوفت شراء البريد الساخن وضمه إلى بيئة الويندوز التشغيليه وفي خريف 97 عرضت على صابر مبلغ 50 مليون دولار غير أن صابر كان يعرف أهمية البرنامج والخدمة التي يقدمها فطلب 500 مليون دولار وبعد مفاوضات مرهقه استمرت حتى 98 وافق صابر على بيع البرنامج بـ 400 مليون دولار على شرط أن يتم تعيينه كخبير في شركة ميكروسوفت. واليوم وصل عدد مستخدمي البريد الساخن إلى 90 مليون شخص وينتسب إليه يومياً ما يقارب 3000 مستخدم حول العالم . أما صابر فلم يتوقف عن عمله كمبرمج بل ومن آخر ابتكاراته برنامج يدعى ( آرزو) يوفر بيئة آمنه للمتسوقين عبر الانترنت . وقد أصبح صابر من الثراء والشهرة بحيث استضافه رئيس أمريكا السابق بيل كلينتون والرئيس شيراك ورئيس الوزراء الهندي بيهاري فاجبايي . وما يزيد من الإعجاب بشخصية صابر انه ما أن استلم ثروته حتى بنى العديد من المعاهد الدينية والتعليمية الإسلامية في بلاده وساعد كثيرا من الطلاب المحرومين على إكمال تعليمهم ( حتى انه يقال أن ثروته انخفضت بسرعة إلى 100 مليون دولار فقط ) وليت ما فعله صابر في قصة نجاحه يصل إلى مسامع أثرياء العرب الذين يتفننون في تهريب وإخفاء أموالهم وإيداعها في أحد بنوك سويسرا التي تستفيد بعوائدها منفردة ، فشخصية صابر هذه شخصية مميزه تستحق الدراسة والثناء والتأثر بها كما انه نموذج وفاء كبير جدا لبلاده. وكانت شركة مايكروسوفت قد أعلنت أنها تنوي زيادة القدرة التخزينية لخدمة البريد الالكتروني هوت ميل التي تقدمها نظير اشتراك إلى 2 جيجابايت ، كما أنها تخطط لزيادة السعة التخزينية لخدمة البريد الالكتروني المجانية مثلما فعلت منافستها الرئيسية ياهو في وقت سابق من الشهر السابق لكن ذلك لم يحدث بعد . وقالت مايكروسوفت أيضا أنها ستوسع خدمة البريد الالكتروني المجانية وخدمة الحماية من الفيروسات لتشمل جميع عملاء الشركة البالغ عددهم 170 مليون شخص حول العالم ليتسنى لهم فحص وتنظيف الرسائل الواردة والصادرة ومن ثم منع أي فيروسات أو ديدان من دخول صندوق الرسائل الخاص بأي عميل. وكانت ياهو قد نفذت وعدها في وقت سابق بزيادة قدرة التخزين التي تقدمها في خدمات البريد الالكتروني لتشعل المنافسة مع جوجل التي أعلنت عن خطط لمنح مستخدمي البريد الالكتروني الخاصة بها وهو "جي ميل" مساحة تخزين قدرها واحد جيجابايت مجانا وهي قدرة تفوق كثيرا ما قدمته مايكروسوفت أو ياهو. قال بليك ايرفينج نائب رئيس خدمات الاتصال في ام.اس.ان. لقد تغير مجال اللعب.. سنحسم أمر المنافسة على القدرة التخزينية. وتتمتع خدمة البريد الالكتروني "هوت ميل" التي تقدمها مايكروسوفت بثاني اكبر شعبية بعد ياهو ميل حسبما تقول تصنيفات نيلسن المتخصصة في أبحاث الانترنت والتي لم ترصد بعد خدمة "جي ميل" الخاصة بجوجل. رفع مايكروسوفت القدرة التخزينية للبريد الالكتروني المجاني إلى 250 ميجابايت بدلا من اثنين ميجابايت في السابق. كما سيكون بوسع المشتركين في الخدمة إرسال مرفقات يبلغ إجمالي حجمها عشرة ميجابايت بدلا من واحد ميجابايت في كل مرة. كما أعلنت مايكروسوفت عن خدمة بريد الكتروني ممتازة أطلقت عليها اسم ام.اس.ان. هوت ميل بلاس مقابل 19.95 دولار في العام وسيحصل المشترك في هذه الخدمة على قدرة تخزين قدرها اثنين جيجابايت وإمكانية إرسال مرفقات يبلغ حجمها 20 ميجابايت في كل مرة. منقول من http://www.moheet.com
-
بسم الله الرحمن الرحيم
محمد حجازي replied to محمد طاهر عرفه's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
السلام عليكم ... بالنسبة لفكرة القسم فهي فكرة جيدة وكانت تنقص المنتدى ، ولكن لي ملاحظتين : - بالنسبة لصور الـ GIF فهي غير مناسبة أبداً. - بالنسبة لتسمية المنتدى : لو كانت تحت اسم بعيداً عن الأوفيس أو استراحة المنتدى لكان ذلك أفضل و الله أعلم. تحياتي -
ميكروسوفت أوفيس أنفو باث
محمد حجازي replied to bodalal's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
السلام عليكم ... شكراً أخي على هذه المعلومات القيمة ، لقد استطعت حل المشكلة بالطريقة التالية : 1. أولاً نذهب لبرنامج الإنفو باث و من القائمة File نختار Design a Form . 2. من جزء المهام نختار الأمر New Blank Form . 3. من القائمة View نختار Sample Data لتظهر لنا في جزء المهام . 4. نختار Data Source لتظهر لنا شاشة ننشئ فيها شجرة البيانات كما نريد ، ونحدد خصائص البيانات في كل عنصر : 5. الحركة التي كنت افتقدها هي جعل العنصر row قابلاً للتوسع ، وقد وجدها في تفعيل الخاصية Repeating لديه ليظهر سهم صغير متجه للأسفل ، كما في الصورة السابقة . 6.الآن كل عنصر من العناصر name , age , married , work الابن يمكن ربطه بأداة محددة (زر نص ، قائمة منسدلة ، مربع اختيار ، ... الخ) ، ولكن مع الانتباه لضرورة وضعها كلها ضمن الأداة Repeating Section التابعة للعنصر row الأب . 7. الآن وفي مرحلة التصميم تظهر لنا الصورة التالية : وهنا يمكننا إضافة سجل جديد عن طريق الزر الأزرق الموجود على الجهة اليسرى . إذا كنت تعرف شيئاً عن لغة الـ XML فسوف تستوعب ما أقول : إن إضافة سجل جديد هي بالواقع إضافة لعنصر أب جديد (العنصر row) بالاستناد إلى الحقول (العناصر الأبناء) ، وللتأكد افتح ملف الـ XML بواسطة الفرونت بيج وشاهد بنفسك ما يحدث . (y) لقد بدأت باستيعاب ما يحدث وخصوصاً عملية ربط عدة ملفات بواسطة الإنفو باث (يمكن أن يكون ذلك بإنشاء شجرة بيانات وربطها بالملفات المختلفة) ، سأجرب ذلك. :d مرفق مثال التجربة تحياتي Labour.zip -
السلام عليكم ... هذا كود التصفية بعد التعديل وهو يقوم بالانتهاء في حالة تجاهل أحد النةافذ ، وهو يحتوي على رسالتي تنبيه : الأولى : عندما تكون البيانات المدخلة غير صحيحة ، كوضع رقم لعامود التصفية يتجاوز عدد أعمدة المجال المحدد الثانية : في حالة حدوث أخطاء مختلفة غير متوقعة ، كوضع عدد أعمدة ضخم جداً Sub OnFilter() On Error GoTo checkerror Dim InputRange As Range Dim NemberCoulmn As Integer Dim ValueFilter As String Set InputRange = Application.InputBox(prompt:="أدخل مجال التصفية", Title:="تصفية", Type:=8) NemberCoulmn = Application.InputBox(prompt:="أدخل ترتيب العامود المراد تصفيته", Title:="تصفية", Type:=1) ValueFilter = Application.InputBox(prompt:="أدخل القيمة التي تريد تصفيتها", Title:="تصفية", Type:=2) If InputRange Is Nothing Then Exit Sub ElseIf NemberCoulmn = False Then Exit Sub ElseIf ValueFilter = "False" Then Exit Sub Else Range(InputRange.Address).AutoFilter Field:=NemberCoulmn, Criteria1:=ValueFilter End If Exit Sub checkerror: Const NoRange As Integer = 424 Const Unsuitable As Integer = 1004 Select Case Err Case NoRange Resume Next Case Unsuitable MsgBox ("تأكد من أن البيانات التي أدخلتها صحيحة") Exit Sub Case Else MsgBox ("حدث خطأ غير متوقع") End Select End Sub
-
إدراج قيمة لخلية معينة عن طريق بعض الرسائل
محمد حجازي replied to بسولي's topic in منتدى الاكسيل Excel
السلام عليكم ... هذا كود ، ولكن انتبه إلى أنه إذا كانت قيمة الخلية صفراً فستعتبر قيمة فارغة : Sub ValueCells() Dim NemberRow As Long Dim NemberCoulmn As Integer Dim ValueCell As Double NemberRow = Application.InputBox(prompt:="أدخل رقم صف الخلية", Title:="رقم الصف", Default:=1, Type:=1) NemberCoulmn = Application.InputBox(prompt:="أدخل رقم عامود الخلية", Title:="رقم العامود", Default:=1, Type:=1) ValueCell = Application.InputBox(prompt:="أدخل القيمة المراد إضافتها", Title:="القيمة", Default:=0, Type:=1) If NemberRow = 0 Or NemberCoulmn = 0 Or ValueCell = 0 Then Exit Sub Else ActiveSheet.Cells(NemberRow, NemberCoulmn).Value = ValueCell End If End Sub ValueCells.zip -
السلام عليكم ... قصدك تعريف المرجع باسم محدد عن طريق النقر فوق قائمة Insert واختيار Name ومن ثم اختيار Define ، حيث تظهر لك نافذة ادخال اسم النطاق ، إذا كان هذا قصدك فالجواب حتماً سيكون بلا وذلك لأن عملية التعريف هذه تنحكم ببعض الاعتبارات : 1. يجب أن يكون الحرف الأول من الاسم حرفاً أبجدياً أو يكون خط التسطير السفلي ( _ ). 2. لا يمكن أن تكون الأسماء هي نفس مراجع الخلايا ، مثل G$4 أو R3C5. 3. لا يمكنك استخدام الفراغات في تسمية النطاقات. 4. يمكن أن يتكون الاسم من 255 حرفاً كحد أقصى. 5. لا يفرق الاكسل بين الأحرف اللاتينية الكبيرة و الصغيرة في الأسماء. من 1 و 2 نلاحظ أن الاسم يجب أن يبدأ حتما بالمحرف _ أو بحرفين أبجدين على أقل تقدير (هذا إذا كنت تستخدم نظام الترميز A1).
-
كود لاظهار صوت عند تغير الخلية بقيمة معينة
محمد حجازي replied to lord's topic in منتدى الاكسيل Excel
السلام عليكم ... هذا شرح سريع لكود النسخ : الكود يتفجر عند حدث تعديل الخلية ، حيث يتم إسناد الهدف الذي يمثل الخلية المعدلة في متغير اسمه Target من نوع range. Dim EndRow As Long في السطر السابق عرفنا متغير اسمه EndRow من نوع Long (أي عدد صحيح كبير) ، و الهدف من هذا المتغير هو تخزين عدد أسطر الجدول الموجود في الخلية الثانية. If Target.Column = 4 Then هنا يوجد شرط ، عندما تكود الخلية المعدلة في العامود الرابع تابع وإلا فأنهي الإجراء If Sheets(1).Cells(Target.Row, Target.Column).Value = "ناجح" Then هنا شرط آخر ، إذا كانت الخلية المعدلة تحتوي على كلمة ناجح فتابع و إلا فأنهي الإجراء. Sheets(1).Rows(Target.Row).Copy هنا نسخنا سطر الخلية المعدلة ، بإفتراض أن التعديل يجري في الورقة الأولى. EndRow = Sheets(2).Range("A1").CurrentRegion.Rows.Count هنا أسندنا عدد صفوف الجدول الموجود في الورقة الثانية في المتغير EndRow Sheets(2).Rows(EndRow + 1).Insert Shift:=xlDown هنا أدرجنا السطر المنسوخ في الورقة الثانية ، تحت الجدول القديم. Sheets(1).Select هنا حددنا الورقة الأولى في نهاية العمل. لقد توخيت البساطة بشكل يخدم الشرح أرجو أن أكون وفقت في ذلك -
كود لاظهار صوت عند تغير الخلية بقيمة معينة
محمد حجازي replied to lord's topic in منتدى الاكسيل Excel
السلام عليكم ... الأخ lord : بالنسبة لتشغيل كود النسخ عندما تتغير قيمة الخلية بواسطة صيغة معينة ، لايوجد لدي فكرة محدد عن طريقة عمل ذلك حيث أن الأمر مرتبط بتحديد حدث لهذه الحالة و أنا لا أعرفه ، وفكرت في تحويل إجراء النسخ Sub لدالة Function ولكن وقفت أمام حقيقة مفادها أن الإجراء Function لا ينبغي أن يقوم بإجراء أي تغييرات على البيانات الموجودة داخل مصنف العمل. على أية حال سأبحث عن طريقة لعمل ذلك و أخبرك عندما أجدها. الأخ أبو مؤنس : أنا أستخدم أوفيس 2003 و لا أعلم بالضبط فيما إذا كان هناك إمكانية في الأوفيس 2000 بالتحكم بخصائص مساعد الأوفيس من خلال الكود ، على أية حال يمكنك التحقق من ذلك بالضغط (عندما تكود داخل محرر الفيجوال) على الزر F2 ومن ثم البحث عن كلمة Assistant . بالتوفيق -
السلام عليكم ... يعطيك العافية أخي أبو مؤنس ، جهد تستحق عليه الشكر
-
ميكروسوفت أوفيس أنفو باث
محمد حجازي replied to bodalal's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
السلام عليكم ... أخي أنا لم أقصد كيفية تغيير خصائص الأدوات فأنا أعرف التعامل معها ، ولكن قصدي عندما ننشئ نموذج كيف نستطيع استخدامه لإدخال البيانات (للتبسيط كيف نستطيع استخدامه مثل نماذج الأكسس ، أي كأداة إدخال للبيانات). بالنسبة للمرفق ، لم يعمل معي وظهرت لي الرسالة التالية : على كل ، يمكنك تخزين المرفق بلاحقة xml دون أية مشاكل.تحياتي