نجوم المشاركات
Popular Content
Showing content with the highest reputation on 07/26/15 in all areas
-
السلام عليكم اسعد الله صباحكم معادلات متقنة جداااا , زادكم الله علما و نفع بكم زيادة في الخير هذا كود Sub dahmour() Dim L Application.ScreenUpdating = False L = Sheets("ناجح").Range("b" & Rows.Count).End(xlUp).Row Sheets("الاوائل").Range("eb14:ec" & L) = Sheets("ناجح").Range("b14:c" & L).Value Sheets("الاوائل").Range("ed14:ed" & L) = Sheets("ناجح").Range("e14:e" & L).Value Sheets("الاوائل").Range("ee14:ee" & L) = Sheets("ناجح").Range("bp14:bp" & L).Value Sheets("الاوائل").Range("eb14:ee" & L).Sort key1:=[ee14], order1:=xlDescending, key2:=[ed14], order2:=xlAscending Sheets("الاوائل").Range("f11:i20") = Sheets("الاوائل").Range("eb14:ee23").Value Sheets("الاوائل").Range("eb14:ee" & L).Clear Application.ScreenUpdating = True End Sub تحياتي4 points
-
الأخ الكريم أبو معاذ بارك الله فيك وجزاك الله خير الجزاء على هذا العمل الرائع جعله الله في ميزان حسناتك يوم القيامة .. وفي انتظار الأخ العبقري في شرح المعادلات والدوال خالد الرشيدي في أن يقوم بتناول الكتاب جزء جزء ليستفيد أكبر قدر من الأعضاء ..كفانا كلام نظري .. المكتبة ممتلئة بالنظريات لكن التطبيق قليل جداً أقترح عمل شروحات وعمل اختبارات عليها لمعرفة مدى استيعاب الأخوة الأعضاء لما هو يقدم من شروحات3 points
-
بسم الله الرحمن الرحيم استاذي الفاضل / م. ياسر،،، الاخوة الاعزاء في المنتدى،،، السلام عليكم ورحمة الله وبركاته،،، ارفق الى سيادتكم بعد اذن استاذنا ياسر ملف معدل وتم تحويل اللغة من التايلندية الى الانجليزية - ( قد يكون بها اخطاء في الترجمة - لكنها قد توفي المطلوب وتوصل المعلومة للمتدرب " ترجمة جوجل" ) نفع الله بهذه المعلومات وجعلها في موازين حسناتنا والاستاذ / ياسر ووالدينا وكل من كان همه نفع الناس. وصل اللهم وسلم على سيد الخلق اجمعين والحمد لله رب العالمين Advance Excel Function Training(Ed).rar3 points
-
الغاء ازرار النسخ واللصق في لوحة المفاتيح Ctrl+C , Ctrl+V Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If (Shift And 2) And (KeyCode = Asc("C")) Then KeyCode = 0 MsgBox "No Coping Allowed, Cheater!!!" ElseIf (Shift And 2) And (KeyCode = Asc("V")) Then KeyCode = 0 MsgBox "No Pasting Allowed, Cheater!!!" End If End Sub2 points
-
تم التعديل على الملف بحيث يقوم بعماية البحث في 3 احتمالات الاسم فقط الاسم و الرقم الرقم فقط القائمة المنسدلة مطاطة تستجيب لاي تغيرات في الاسماء شرط ان لا يتكرر الاسم آمل ان ينال اعجابكم اضغط افضل اجابة و خلاص بقى ترحيل البيانات المكررة عند البحث salim avancee.zip2 points
-
بسم الله الرحمن الرحيم اخواني م. ياسر البنا أ. خالد الرشيدي وجميع الاخوة عباقرة المنتدى الراقي.. السلام عليكم ورحمة الله وبركاته جوزيتم خيرا على كرم اخلاقكم وعظيم فضلكم، وما أننا الا كصغير طفلكم يتعلم من فيض علمكم. غفر الله لنا ولكم2 points
-
أخي الفاضل أبو نبأ إليك الكود التالي عله يكون المطلوب .. حاولت الابتعاد عن استخدام الحلقات التكرارية حتى يعمل الكود بكفاءة مع البيانات الكثيرة اعتمدت في التفكير على استخدام الفلترة ... أي كل رقم كود أقوم بفلترته ثم نسخ البيانات المرتبطة بعملية الفلترة إلى آخر ورقة عمل أرجو أن يكون المطلوب Sub TransferDataBasedOnCode() Dim wsMain As Worksheet, wsBranch As Worksheet, SH As Worksheet Dim rngData As Range, Rng As Range, Cell As Range, LR As Long Set wsMain = Sheets("الرئيسية"): Set wsBranch = Sheets("الفرعية"): Set SH = Sheets("الكود الموجود") LR = IIf(wsBranch.Cells(Rows.Count, 1).End(xlUp).Row = 1, 2, wsBranch.Cells(Rows.Count, 1).End(xlUp).Row) Set Rng = wsBranch.Range("A2:A" & LR) Set rngData = wsMain.Range("A1:K" & wsMain.Cells(Rows.Count, 1).End(xlUp).Row) Application.ScreenUpdating = False If Application.WorksheetFunction.CountA(Rng) < 1 Then MsgBox "لا يوجد أرقام كود لترحيلها", vbInformation: Exit Sub For Each Cell In Rng With wsMain .AutoFilterMode = False .Range("A1:K1").AutoFilter Field:=2, Criteria1:=Cell.Value If rngData.Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then GoTo Skipper rngData.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy SH.Range("A" & SH.Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlPasteValues End With Skipper: Next Cell wsMain.AutoFilterMode = False SH.Range("A1").Select Application.CutCopyMode = False Application.ScreenUpdating = True End Sub لا تنسى أن تحدد أفضل إجابة ولو فيها تعب ليك اضغط على "أعجبني هذا" إذا أعجبك الحل تقبل تحياتي :fff: Transfer Data Based On Code.rar2 points
-
ربما بعض الأعضاء لايحبون أن يطلع الناس على أسمائهم (بقول ربما) وربما هو يحب الأستيكا ويتمسك بالاسم حباً فيه وعشقاً له (بقول ربما) وربما الموضوع مرهق .. أقصد موضوع اسم الظهور أمر مجهد ومرهق (بقول ربما) وربما يرى البعض أن هذا الأمر أمر تافه لا قيمة له وعلينا أن نكون أكثر وعياً وتفهماُ من أن ننظر لمثل تلك الأمور البسيطة (بقول ربما) وربما هو مجرد كسل كون العضو .. لسه هيتعب نفسه ويروح هنا وينقر هنا ويغير من الاسم ده للاسم ده ..حاجة متعبة (بقول ربما) وربما يجهل البعض الأمر ولكن ليس لمدعي هذا الرأي حجة ففي رابط التوجيهات كيفية تغيير اسم الظهور (بقول ربما) لو دخلنا في قايمة الاحتمالات ربما ننسى جوهر الأمر (بقول ربما) والسلام عليكم ورحمة الله وبركاته أخي وحبيبي في الله أبو يوسف (الجملة دي الوحيدة في المشاركة اللي يقيناً مش ربما)2 points
-
السلام عليكم ورحمة الله وبركاته: أخي عبد العزيز المحترم..جزاكم الله خيراً..إلا أنني أتصور وأكاد أجزم أنه لا يمكن أن تكون هناك مطابقة تامة بين التاريخين الميلادي والهجري ولو كان هنالك لما احتاج مطوري برامج ويندوز وضع زائد أو ناقص يومين وكذلك جوالات أندرويد وغيرها ولما احتاج المسلمون لمراقبة هلال الأشهر القمرية وخصوصاً هلال شهر رمضان وشوّال وذي الحجة والمحرّم...هذا رأيي وقناعتي. فإن كان هناك ما يدحض هذا القول إيتوني به وأكون لكم من الشاكرين. تقبلوا تحياتي والسلام عليكم ورحمة الله وبركاته.. السلام عليكم و رحمة الله و بركاته سيّدي الفاضل محمد حسن المحمد ..ما قلتَه هو الحقيقة بذاتها و صفاتها .....خلاصة الخلاصة هي أنّه لو كان هناك تطابق مضبوط لاكتفينا في صيامنا و أعيادنا و جميع شعائرنا الدينية و الدنيوية بالرزنامة الميلادية .. فائق احتراماتي سيدي الكريم السلام عليكم ورحمة الله وبركاته:شهادة حق وإنصاف من أخ ٍ كريم لأن التاريخ الهجري هو التاريخ الحقيقي لأنه لم يخضع لحسابات البشر رغم اجتهادهم ولكنهم اخترعوا الميكروسكوبات لمراقبة حركة القمر وبالرغم من تحوّله وانتقاله عبر فصول السنة لا يزال فوق حساباتهم أما الميلادي خضع لحسابات البشر فأقاموا وعدلوا وزادوا وأنقصوا 365.25 يوماً جعلوا شباط 28 يوماً وبعضها 30 والآخر 31 أما الهجري فالشهر قد يأتي مرة 30 يوماً وأخرى 29 إلا أنني لم أسمع بشهر هجري28 يوماً. ولكن قل لي أي شهر منها تحكموا بعدد أيامه فجعلو..تقبلوا تحياتي...السلام عليكم ورحمة الله وبركاته.2 points
-
السلام عليكم ورحمة الله وبركاته: أخي عبد العزيز المحترم..جزاكم الله خيراً..إلا أنني أتصور وأكاد أجزم أنه لا يمكن أن تكون هناك مطابقة تامة بين التاريخين الميلادي والهجري ولو كان هنالك لما احتاج مطوري برامج ويندوز وضع زائد أو ناقص يومين وكذلك جوالات أندرويد وغيرها ولما احتاج المسلمون لمراقبة هلال الأشهر القمرية وخصوصاً هلال شهر رمضان وشوّال وذي الحجة والمحرّم...هذا رأيي وقناعتي. فإن كان هناك ما يدحض هذا القول إيتوني به وأكون لكم من الشاكرين. تقبلوا تحياتي والسلام عليكم ورحمة الله وبركاته.. السلام عليكم و رحمة الله و بركاته سيّدي الفاضل محمد حسن المحمد ..ما قلتَه هو الحقيقة بذاتها و صفاتها .....خلاصة الخلاصة هي أنّه لو كان هناك تطابق مضبوط لاكتفينا في صيامنا و أعيادنا و جميع شعائرنا الدينية و الدنيوية بالرزنامة الميلادية .. فائق احتراماتي سيدي الكريم2 points
-
السلام عليكم ورحمة الله وبركاته: أخي عبد العزيز المحترم..جزاكم الله خيراً..إلا أنني أتصور وأكاد أجزم أنه لا يمكن أن تكون هناك مطابقة تامة بين التاريخين الميلادي والهجري ولو كان هنالك لما احتاج مطورو برامج ويندوز وضع زائد أو ناقص يومين وكذلك جوالات أندرويد وغيرها ولما احتاج المسلمون لمراقبة هلال الأشهر القمرية وخصوصاً هلال شهر رمضان وشوّال وذي الحجة والمحرّم...هذا رأيي وقناعتي. فإن كان هناك ما يدحض هذا القول إيتوني به وأكون لكم من الشاكرين. تقبلوا تحياتي والسلام عليكم ورحمة الله وبركاته..2 points
-
أخي الكريم أبو سما بافتراض أن البنود ثابتة بنفس الترتيب في ورقتي العمل إليك الكود التالي عله يفي بالغرض Sub SUMTwoSheets() Dim WS As Worksheet, SH As Worksheet Set WS = Sheets("المخزن"): Set SH = Sheets("إذن صرف") Application.ScreenUpdating = False Application.DisplayAlerts = False If MsgBox("سيتم جمع القيم في ورقتي العمل في العمود الخامس" & vbNewLine & "هل أنت متأكد من الاستمرار؟", vbYesNo) = vbNo Then Exit Sub Sheets.Add After:=Sheets(Sheets.Count) With ActiveSheet SH.Range("C8:C55").Copy .Range("A1") SH.Range("G8:G55").Copy .Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1) WS.Range("E4:E" & WS.Cells(Rows.Count, 2).End(xlUp).Row).Copy .Range("B1") With .Range("C1:C" & .Cells(Rows.Count, 1).End(xlUp).Row) .Formula = "=IF(AND(A1="""",B1=""""),"""",SUM(A1:B1))": .Value = .Value .Copy: WS.Range("E4").PasteSpecial xlPasteValues End With .Delete End With WS.Activate Application.CutCopyMode = False Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub لا تنسى أن تحدد أفضل إجابة ليظهر الموضوع مجاب ومنتهي تقبل تحياتي SUM Two Sheets.rar2 points
-
أخي وحبيبي في الله علاء رسلان ربما يكون شيء مستحدث في علم الرياضيات لم نسمع به ... وفوق كل ذي علمٍ عليم أنا حاولت فهم الطريقة التي يتم بها حساب متوسط الزوايا من خلال المرفق لأبو لجين فقمت على أساسها بعمل الدالة المعرفة التي تؤدي المطلوب وإن شاء الله يفيدنا أخونا الكريم أبو لجين بمعلومات أكثر حول طريقة حساب متوسط الزوايا الدائرية2 points
-
قم بالإطلاع على المرفق التالي لتتضح الفكرة لك وإذا أعجبتك الفكرة بدأنا في التنفيذ Store V1.rar2 points
-
من منا من لم تحدث له هذه المشكلة وهي تعليق قاعد البيانات في الذاكرة فلا تفتح ولا تقفل مما يضطر البعض إلى إعادة تشغيل الجهاز إليكم هذه الطريقة البسيطة لتجاوز هذه المشكلة 1- اضغط على ctrl+Alt+Delet فيظهر أمامك إطار إدارة المهام افتح على تبويب التطبيقات كما في الصورة اليمنى ثم أشر عل قاعدة بياناتك فستلاحظ أن زر إنها المهمة أصبح فعالا فانقر عليه لإنهاء تشغيل القاعدة . 2- إذا لم تجد قاعدة بياناتك في هذا التبويب فافتح تبويب العمليات كما في الصورة اليسرى ولاحظ الاسم الذي تم التأشير عليه فهذا الاسم خاص بقواعد بيانات أكسس أشر عليه ثم اضغط انهاء العملية في الأسفل . مسألة صغيرة أرجو أن يكون نفعها أكبر ،،،1 point
-
بسم الله الرحمان الرحيم السلام عليكم برنامج دليل الهاتف هذا ليس الاول الذي يطرح في المنتدى يعني الفكرة ليست جديدة لاكن ,,,,,,,,, المغزى من تصميمي لهذا البرنامج هو الجانب الجمالي اكثر منه الجانب التقني كما يعلم الجميع ان امكانيات VBA ليست بالكبيرة من ناحية التصام الخاصة بالفورم شخصيا سأمت من الفورمات والازرار الكلاسيكية مع هذا البرنامج ستكتشفون التقنية الازمة لجعل شكل الفورم مميز وجذاب الى اقصدى الحدود ا ابدأ اولا مع تعريف البرنامج جعلت الملف ملف Setup يثبت على الجهاز كأي برنامج بالطريقة المعروفة لدى الجميع بعد تثبيت البرنامج ستجد ايقونته على سطع المكتب واجهة البرنامج هذا هو الفورم الذي اتحدث عنه أولا لاضافة البيانات اضغذ على زر جديد ثم اختر مجموعة ثم املئ البيانات الازمة ومن صورة ادراج صورة اختر الصورة التي تريد اراجهاط حفظ ثانيا للتعديل ابحث عن بيانات الشخص التي تريد تعديلها بواسطة مربعات البحث حيث تتوفر اربع خيارات للبحث حسب الاسم او اللقب او الهاتف او البريد اما قائمة المجموعات تجلب لك جميع الاسماء المدرجة تحت المجموعة المختارة بعد ايجادك للبيانات التي تريد تعديلها اضغط عليها من اليست لكي تضهر البيانات في التكسات عدل ماتريد وكدالك يوجد امكانية تعديل الصورة بعد اتمامك التعديل اضغط حفظ ثالثا للحدث نفس الامر كما التعديل وانما اضغذ حذف رابعا اضافة او تعديل مجموعة لاتمام ذالك اضغط على الايقونة الجرارة بجانب ليست المجموعات ليضهر لك الفورم التالي لتعديل اضغط على المجموعة تضهر لك امبوبوكس اكتب الاسم الجديد ثم اوك للا ضافة اضغط اضافة تضهر امبوبوكس اكتب فيها اسم المجموعة الجديدة ثم اوك ولمن يسأل عن الطريقة للوصول الى هذا الشكل الامر بسيط اولا قم بتصميم واجهة البرنامج باي برنامج تجيده كالفوتو شوب مثلا شخصيا استعملت الاكسل في التصميم ثم اجعله كخلفية للفورم الخاص بك ومن اجل الحواف والانحناءات ,,,, شاهد هذا الموضوع حركة جديدة (اجعل الفورم يأخذ اي شكل تريده) ولتفعيل عجلت المواس كما هو في هذا البرنامج شاهد تفعيل عجلة الماوس في اليست بوكس و الكومبوبوكس يبقى الخاصية التي استعملتها مع الازرار وهي كالاتي اولا قم جميع بتصميم الازرار الازمة للبرنامج ثم ادرج ImageList في المشروع الذي تعمل عليه وخن جميع صور الازرار فيه وهذا الكود المستعمل لجعل Image تأخد الصورة التي نريد ان تأخذها Me.Image1.Picture = ImageList1.ListImages(1).Picture ملاحضة عندما تكون في وضع الفورم وتريد العودة الى ملف الاكسل اضغط Alt+B الرقم السري 1111 اترككم مع المرفق و ارجو ان لا أكون قد اطلت عليكم كما ارجو ان ينال البرنامج اعجابكم وتن تستفيدومنه ولاي استفسارات أنا في الخدمة تحياتي للجميع اخوكم في الله (شوقي ربيع) البرنامج بصيغة الملف التنفيذي Telephone book.rar البرنامج بدون صيغة الملف التنفيذي Telephone book Excel.rar نسخة متوافقة مع جميع انظمة التشغيل للاخوة التي ظهرت عندهم مشكلة مع البرنامج بتاريخ اليوم 2014/04/16م نسخة متوافقة لجميع نظم التشغيل.rar1 point
-
السلام عليكم ورحمة الله تعالى وبركاته هو شرح بسيط اتمنى من الله ان يساعد احدا منكم يوما هذا الشرح عبارة عن مقالات قراتها قديما ولكن نجمعها هنا باذن الله ممكن تقول عن الموضوع الاسس العلمية او الاسس الصحيحة لبناء قاعدة بينات متكاملة دا ان صح التعبير يعنى لانى لست اهلا لذلك نصيحة لو عاوز تتعلم بجد اكسس عليك بالورقة والقلم والة حاسبة كمان .... ودى بجد حقيقة ولو فكرت تفتح الاكسس قاوم نفسك واستمتع بالتطبيق على الورق اولا ثم جرب على الاكسس فى النهاية واى سؤال هتبداه بكيف ؟؟ صدقنى مش هتفهم حاجة هتبقى مجرد الة بتنقل وخلاص انا عاوزك انت تكون الاكسس يعنى تسال نفسك اولا كيف ؟؟ ثم تعقبها مباشرة بلماذا ؟؟ لانى كيف ؟؟ سهلة جدا ... اعمل كذا وكذا وكذا وكذا بس هتصنع منك مقلدا عظيما اما لماذا عاوزة فهم عاوزة هدوء عاوزة شرح لان انت لو اتعلمت بجد الاسس الصحيحة البرامج دى Access . FoxPro. . Clipper . DBase . Microsoft SQL . Oracle . Sybase هتبقى سهلة جدا معاك البرامج اللى فاتت دى عبارة عن برامج لشركات تستخدم ادوات قواعد البيانات مثال بسيط كلمة تليفون او موبايل لما تيجى تتكلم عنها هتتكلم عن طريقة عملها الصناعة بتاعتها او صيانتها بس مش هتتكلم عن نوع معين من التليفونات يلا اقفل الاكسس وابتدى اسال نفسك لماذا ننشأ هذا الجدول؟ لماذا بهذه الطريقة ؟ لماذا الاستعلام وما هى اهميته ؟ مش كيف ننشأ هذا الجدول انما لماذا ننشا هذا الجدول ؟؟ مفيش اكسس كله مقفول انت الاكسس صدقنى لو جربت الموضوع دا هتكون وضعت قدمك على الطريق الصحيح لانشاء قاعدة بيانات متكاملة قواعد البيانات خلى بالك من كلمة البيانات دى هى عبارة عن مجموعة لا معنى لها من الارقام والكلمات زى كدا "ربح " "خسارة" "2000 " ...... دى اسمها بيانات البيانات لا تعنى شيئا ولا يستفاد منها اطلاقا الخاصية الثانية للبيانات هى الحجم حيث البيانات تعنى الضخامة والكبر من حيث العدد اذا فالبيانات ضخمة ومتشعبة وكثيرة وفى نفس لوقت لا تعنى شيئا ندخل بقى فى مصطلح قاعدة قاعدة هو تنظيم الشئ على اسس ودا اللى بيحصل قى قواعد البيانات تنظيممها .. ثم تحليلها ... ليه بقى ؟؟ظ لان من خلال معالجة البيانات هتحولها لمعلومات ... يبقى الهدف من البيانات ه تحويلها لمعلومات السؤال برضو .. لمــــــــــــــــــــــــاذا نقوم بتحويل البيانات الى معلومات علشان سببين مهمين جدا اولا .. اتخاذ القرارات ثانيا ... التخطيط مثال بسيط اوى .. بلدى الغالية مصر ربنا يحفظها عندة قاعدة بينات لتعداد السكان فى مصر .. اللى هما اصلا مش بيبطلو خلفة هههههههه هي بينات ملهاش قيمة انما بقى لما اجى اعالجها علشام احولها لمعلومات علشان اقدر اخطط واتخذ القرارات هلاقى مثلا مثلا عندى اطفال لسه صغيرين مثلا 20 % دى لحد كدا معلومة عايزة تخطيط لبناء مدارس وهكذا مثلا ... ومننساش اننا لازم نحول البيانات الى معلومات علشان نقدر نتخذ القرارات اخى الكريم قواعد البينات تندرج تحت مصطلح علم للبرمجة أسمه Tier 3 أي الطبقات الثلاثة هههههههههههه الاستاذ InternetMaster - الفريق العربى للبرمجة عندما سال فى احد مشاركاته ان هذه الطبقات هو طراز قديم او تصميم قديم قال احفظوها كما هى حتى لو قيل انها خطأ .. الطبقة الأولىFirst Tier وهو ما يسمى بالمقدمة أو واجهة المستخدم User Interface الطبقة الثانية Second Tier وهوما يسمى بطبقة المنطق والقوانين Logic Interface الطبقة الثالثة Third Tier وهو ما يسمى بالخلفيه Back End ليه انا بقولك على الطبقات الثلاثة دى تعالى لننسى النماذج . وننسى التقارير ملحوظة النماذج والتقارير الموجودة فى الاسس ليست للاحتراف او البرامج القوية ليه واجع دماغنا بكل دا لان مفيش حاجة اسمها فى قواعد البينات اسمه نماذج او تقارير النماذج والتقارير تصنع فى الطبقة الاولى اما قواعد البينات فى الطبقة الثالثة لماذا الآكسس و FoxPro و Dbase و Clipper و MySQL يستخدمون الطبقات الثلاثة مع بعضها البعض ف محتوى واحد؟ علشان دى برامج تعبانة . ودى حقيقةعلى قدها يعنى علشان البرامج دى لا تصلح الا للاستخدام الشخصى فقط او البرامج الى لا يزيد عدد مستخدميها عن 10 اشخاص فقط اخوانى اعضاء منتديات اوفيسنا . قسم الاكسس تحديدا . او اى قارئ تخيل ان قاعدة البيانات فى 5000 جدول ان كل جدول فى قاعدة البيانات يحتوى على 10 ملايين سجل انه يوجد 30 الف مستخدم يتعاملون مع القاعدة فى نفس الوقت خلى بالك من التخيل دا علشان انا بقول كدا ليه فى مصطلحين لازم تعرفهم اولا وهم اللى هيوصلولك التخيل الصحيح الذى ادرجته مسبقا Server و Client Client الواجهات والنماذج والتقارير دائما وأبدا على Client -- الطبقة الأولى Server قواعد البيالنات دائما وأبداً على Server -- الطبقة الثالثة ------------------------ المسافة بين Client وال Server دائماغير معروفة، قد تكون 5 سم او الاف كيلو متر 10 عند بداية تصميم اى قاعدة بينات نبدأ بمعرفة اين يقع Client واين يقع server ثم يجب تحديد عدد المستخدمين لبرنامجك ولذلك ضمان مستوى كفائ الطبقة الثالثة وهو الخادم حتى لا يتعطل ونروح فى داهية ههههههههههه اخوانى اهم شئ الورقة والقلم ولبناء قاعدة بينات صحيحة يجب اولا بتحديد المخرجات - التقارير- فابدا بالتقارير ثم الجداول ثم الاستعلامات ثم ...... ومتنساش بالورقة والقلم الاول اتمنى من الله ان يساعد هذا الموضوع شخصا ما يوما .. وكما قلت مسبقا هو خلاصة ما تعلمته من استاذتى تحياتى مارد1 point
-
السلام عليكم جزيت خيرا - شكرا على سرعة المرور - وفقكم الله العمل الممتاز يستهال مو بس افضل اجابة او اعجاب بل الدعاء له بالتوفيق والتيسير وزيادة في العلم والعمل وفقكم الله1 point
-
السلام عليكم أخي الفاضل تم استخدام التنسيق الشرطي Conditional Formatting ولم يتم استخدام أكواد في التنسيق الشرطي يتم استخدام هذه المعادلة =IF($F6<>"",COUNTA($F6:$J6)>0,"") حيث إن F6 الأولى التي على أساسها يتم عمل إطار للخلايا والنطاق من F6:J6 هو الذي يتم عمل الإطار له وبعد ذلك في نافذه التنسيق الشرطي هتضغط على Format ثم Border لتحدد شكل الإطار كما تشاء ويمكنك نسخ التنسيق إلى أي عدد من الصفوف تحت نفس النطاق كما تشاء وبتطبيق الخطوة السابقة على كل الجداول مع تغيير الخلية التي على اساسها يتحدد الإطار وأيضا تغيير النطاق ستعمل معك بدون مشاكل ان شاء الله لو مش واضح بالنسبة لك التنسيق الشرطي ممكن أوضحلك الخطوات كلها بالتفصيل بالصور ومن الأول وبالله يوفقك1 point
-
استاذى القدير . ياسر خليل ابو البراء شرف كبير لى اعتذ به ان تذكرنى بمثل هذا وان شاء الله سأعمل على تقديم دوال الاكسيل بإستخداماتها المتقدمة كل منها فى ملف واسال الله العون فى ذلك تقبل فائق احترامى وتقديرى لشخصكم الكريم أستاذى الغالى / خالد الرشيدى سعدت بمرورك الكريم وفى الإنتظار الشرح العظيم لكل الدوال1 point
-
م.ياسر فتحى البنا أ.ابو معاذ العباسى مجهود كبير جزاكم الله خيراً استاذى القدير . ياسر خليل ابو البراء شرف كبير لى اعتذ به ان تذكرنى بمثل هذا وان شاء الله سأعمل على تقديم دوال الاكسيل بإستخداماتها المتقدمة كل منها فى ملف واسال الله العون فى ذلك تقبل فائق احترامى وتقديرى لشخصكم الكريم1 point
-
أعتقد أن الطلب الثاني يحتاج إلى موضوع جديد لأنه مختلف تماماً عن الطلب الأول مع مزيد من التوضيح وإرفاق بعض النتائج المتوقعة حيث أنني لم أفهم المطلوب بشكل جيد خصوصاً أن هناك بنود كثيرة .. فإذا تم ما تطلب ربما تظهر رسائل تنبيه كثيرة تسبب لك إزعاج ..يمكنك تخصيص عمود مساعد تضع فيه معادلات بسيطة تؤدي الغرض .. أو شوف إنت المطلوب ووضحه باستفاضة وبدون كود أو تعديل في كود يمكن ببساطة استخدام التنسيق الشرطي قمت بعمل تنسيق شرطي لعمود المتبقي بحيث إذا كانت القيمة في عمود المتبقي أقل من أو يساوي القيمة في عمود الحد الأدنى يتم تلوين السطر كنوع من التنبيه تقبل تحياتي SUM Two Sheets.rar1 point
-
لمزيد من التفاصيل حول كيفية التعامل مع المنتدى يرجى زيارة ها الرابط من هنا1 point
-
السلام عليكم ورحمة الله ونعم الأخ العزيز ألا ترى أن اسم أحمد عوض خير من ذلك الذي لم أستطع فهمه لكنت كتبت اسمي mhmdhsnsyr تقبل تحياتي ..ولكن ما زلت راغباً بظهور اسم أحمد على اسم خير الخلق وحبيب الحق ..فما قولك؟؟؟!. على خير كما تريد نغير للاسم الحقيقى1 point
-
السلام عليكم ورحمة الله ونعم الأخ العزيز ألا ترى أن اسم أحمد عوض خير من ذلك الذي لم أستطع فهمه لكنت كتبت اسمي mhmdhsnsyr تقبل تحياتي ..ولكن ما زلت راغباً بظهور اسم أحمد على اسم خير الخلق وحبيب الحق ..فما قولك؟؟؟!.1 point
-
السلام عليكم ليس تجاوزاً لأخوتي الكرام بل رغبة بالمساعدة.. فاعذروني.. قمت بإعداد اليوم والتاريخ مرتبطان كل في عمود ...لكتابة اليوم ما عليك إلا كتابة التاريخ في العمودB وسيكون لديك اسم اليوم تلقائياً في العمودA محاولة أرجو أن تفيدك والسلام عليكم. Day&Date.rar1 point
-
مشكوووور جدا اخ خالد هذا ما كنت اقصده وجزاك الله خير انت وباقى الاعضاء ما قصرتم ويا ريت لو تشرح لى كيف اعملها1 point
-
الاخ محمد حسن المحمد السلام عليكم انا اخوكم احمد عوض سودانى مقيم بالامارات العربية المتحدة ومشكورين على تعاونكم السريع1 point
-
السلام عليكم الاخ الكريم خلبد الرشيدى نرجو شرح المعادله وجزاك الله كل الخير1 point
-
1 point
-
1 point
-
1 point
-
السلام عليكم و رحمة الله و بركاته أخي "الخليفة الأول" هل ممكن توضيح أكثر ليسهل على الأساتذة الأفاضل و كل من باستطاعته مد يد المساعدة ..أنا شخصيا أحب أن أتعلم فقمت بتقليب الموضوع يمينا و شمالاً لكني لم أفهم طلبك بالضبط - هل ستكتب على الفورم و يتم ترحيل ما بالفورم إلى ورقة الاكسل - نفترض أنه عندك 1000 صنف و أردت جلب صنف معين في الفورم من خلال الكومبوبوكس ..أظن سيدي الكريم أن هذا يتطلب أن يكون المستعمل لهذا الملف جهاز كمبيوتر بحد ذاته ..كيف سيتذكر رقم كل صنف من الأصناف الألف لذلك أرى كاقتراح أن يتم تغذية الكومبوبوكسات باسم الصنف أفضل و أحسن و أسهل. - ملأت الفورم بشتى و جميع كومبوبوكساتها و بياناتها وقمت بترحيلها إلى الشيت ..تساؤلي هو : ماذا عن بقية العملاء لو أردت ترحيل بياناتهم أيضا ..لآنك بصدد ترحيل فورمًا بطوله و عرضه وليس سطرًا واحدًا ؟؟ - من أين يتم تغذية الكومبوبوكسات ؟؟ و الأصناف ؟؟ هذه مجرد آراء سيدي الكريم تحياتي /أخوك : عبد العزيز البسكري1 point
-
أخي الحبيب أحمد أعتذر عن عدم المشاركة فقد اعتقدت أن الأخ الغالي سليم قد أدى الغرض بالحل المقدم ونسيت الموضوع تماماً كما نسيت التفاصيل يرجى إعادة توضيح المطلوب بشكل تفصيلي مرة أخرى ... اشرح كل المطلوب مرة واحدة حتى لا تكثر المشاركات بدون داعي ..بشكل تفصيلي .. والأفضل أن يكون هناك بعض النتائج المتوقعة ...1 point
-
السلام عليكم ورحمة الله وبركاته إخوتي الأكارم : لماذا نحن نقرأ الأسماء التي علمنا إياها من هم أقدم منا ...فمثلاً رياضيات ...طب ...إلخ ...؟. تعالوا نقترح للزوايا الدائرية اسماً جديداً ...نطلق عليها اسم :(رياضيات ما بعد الحديثة) أقول هذا على سبيل الدعابة ..وأعتذر لأخي أبو لجين المحترم..فالجفاف يسبب أخاديد في الوجه كما كثرة الضحك سواء بسواء. ولكم في رسول الله أسوة حسنة..مازح عجوزاً بقوله صلى الله عليه وآله وسلم:(لا تدخل الجنة عجوز!.) والسلام عليكم ورحمة الله وبركاته.1 point
-
1 point
-
1 point
-
شكرا جزيلا اخى ياسر واستاذىى فعلا الخطأ كان من نقلى للكود من هنا نقل معى اللغة العربية هكذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ وبالتالى جعل ال غ ؟ وجعل ال صفر ؟؟؟ وبعد أن غيرت هذه العلامات الى اصل كتابتها فى الكود تم العمل بنجاح اشكرك وتعلمت منك الكثير جزاك الله خيرا1 point
-
اخي علاء نفس المعادلة فقط استبدل الخلية B4 بالخلية التي تختوي على الاسم مع كتابة النطاق المناسب حيث الاسماء في الشيت الاول لم اضع الشرط الثاني لان المستخدم يستطيع ذلك بسهولة1 point
-
أخي الكريم خالد هلال إليك الملف التالي عله يفي بالغرض Sub Tarhil() Dim WS As Worksheet, SH As Worksheet Dim LR As Long Set WS = Sheets("الإيصال"): Set SH = Sheets("اليومية") LR = SH.Cells(Rows.Count, 6).End(xlUp).Row + 1 Application.ScreenUpdating = False With SH .Range("A" & LR) = LR - 4 .Range("B" & LR) = WS.Range("G3") .Range("C" & LR) = WS.Range("G2") .Range("D" & LR) = WS.Range("B4") .Range("E" & LR) = WS.Range("B5") .Range("F" & LR) = (WS.Range("B6") - Int(WS.Range("B6"))) * 100 .Range("G" & LR) = Int(WS.Range("B6")) .Range("H" & LR) = WS.Range("D5") .Range("I" & LR) = WS.Range("B7") WS.Range("G3") = WS.Range("G3") + 1 End With MsgBox "تم الترحيل بنجاح", vbInformation Application.ScreenUpdating = True End Sub لا تنسى أن تحدد أفضل إجابة ليظهر الموضوع مجاب ومنتهي كما لا تنسى أن تضغط أعجبني هذا إذا أعجبتك المشاركة وأدت الغرض تقبل تحياتي Tarhil YasserKhalil.rar1 point
-
أحبك الله و متعك بالصحة و العافية و رفع قدرك و شأنك بين الناس و بيض وجهك يوم القيامة و الشكر لله دائما و أبدا و الأخ لأخيه ناصح فالدين النصيحة و الدين المعاملة و من أنا ؟ الا طالبا يتعلم منكم جميعا.. شكرا لذوقك و أدبك الجم ، أشعر بسعادة غامرة تواجدى بين أخوتى فى هذا المنتدى ، لأخى الفاضل و أستاذى الكريم محمد حسن المحمد طابت روائحكم و مروركم الكريم بمختلف المواضيع دمتم بخير جميعا و أعزكم الله .1 point
-
السلام عليكم هناك ععد من الطرق لرفع قاعدة البيانات على النيت منها ما جربت (الدروب بوكس) فهو بطيء بالتحديث ومنها ايضا الهماتشي والشير بوينت هذا اذا رغبت بالتعامل مع الاكسس فقط اما افضلها واسرعها واكثرها امنا هو التحول الى sql server مع ابقاء الوجهات والاستعلامات والميكروات والوحدات النمطية اكسس وتحويل الجداول فقط الى sql server واليك الروابط التالية لتستفيد منها مشاركة الاخ مارد http://www.officena.net/ib/index.php?showtopic=61514&hl=%D8%A7%D8%B3%D8%AA%D8%B6%D8%A7%D9%81%D8%A9 ,وكذلك http://www.officena.net/ib/index.php?showtopic=59842 وكذلك http://www.officena.net/ib/index.php?showtopic=61485&hl=%D8%A7%D8%B3%D8%AA%D8%B6%D8%A7%D9%81%D8%A9#entry396808 بالتوفيق1 point
-
أخي الكريم صراحة لا أجيد التعامل مع الفورم ولكن يبدو لي أن الفورم مألوف وقد رأيته من قبل إذا كان الفورم لأحد الأخوة بالمنتدى يمكنك الإشارة إلى الموضوع الأصلي الذي يحتوي على الفورم أو الملف الأصلي الذي يحتوي هذا الفورم وإن شاء الله تجد المساعدة من إخوانك وتأكد أننا متابعون لكل الموضوعات ولا نتجاهل الموضوع إلا إذا لم يكن لدينا علم به وإن شاء المولى ستجد من يقدم لك يد المساعدة1 point
-
تفضل هذا برنامج لأحد الاخوة الفضلا آمل ان يلبي حاجتك لا تنسى صاحبه من دعوة صالحة فواتير مبيعات.rar1 point
-
1 point
-
اليك هذا الملف يمكنك اختايار المرتبة التي تريد و تبديل الاسماء التي تناسب العاشرة /الرابعة /الاولى حسب الختيار من الخلية J1 اضغط افضل اجابة اذا كان كذلك أعلى نتيجة اختيارية.zip1 point
-
هذا هو الكود المسؤول Option Compare Database Dim Stest As Byte Private Sub sOK_Click() Dim i As Boolean Dim x As String i = Nz(DLookup("pass", "tblUsers", "pass = forms!frmsecurity!text2")) x = Nz(DLookup("UserId", "tblUsers", "pass = Forms!frmsecurity!text2")) If i = True Then If Stest = 1 Then myuser = x DoCmd.Close DoCmd.OpenForm "frmDrjat", acNormal Else myuser = "" DoCmd.Close DoCmd.OpenForm "frmDrjat", acNormal End If Else MsgBox "كلمة المرور غير صحيحة فضلاً تأكد وحاول مجدداً" Text2 = Null End If End Sub علما ان myuser هو متغير نصي تم الاعلان عنه في وحدة نمطية عامة و Stest متغير رقمي يمثل اول رقمين من كلمة المرور وطريقة الوصول الى الكود هو عند تشغيل المثال : نضغط على shift وفي نفس الوقت ننقر على البرنامج فيفتح على التصميم نفتح نموذج frmsecurity على التصميم ثم ننقر Alt+F111 point
-
الدرس الرابع ********* استكمالا لموضوع الكمبو بوكس والليست بوكس في الدرس الثاني والثالث وتعرفنا عن كيفية اضافة كمبو بوكس وليست بوكس واضافة عناصر لكل منها درسنا اليوم ان شاء الله سوف نتحدث فيه عن اضافة العناصر من ورقة العمل وعن طريق تعريف اسم وعن طريق المدي الدينامكي بداخل الفورم وكذلك سوف نتعرف علي اضافة اكثر من عمود داخل الكمبو بوكس والليست بوكس Add Items/Data to (Populate) a ListBox or ComboBox أضافة عناصر البيانات الي القائمة المنسدلة للكمبو بوكس والليست بوكس 1- تعيين مصدر البيانات في الفورم اذا كانت القائمة ثابتة كود VBA Me.ListBox1.RowSource = "Sheet1!A1:B10" أو (عن طريق اسم ) Me.ListBox1.RowSource ="Sheet1!HeightList" VBA code - if the list is dynamic: Me.ListBox1.RowSource = "Sheet1!A1:B" & Sheet1.Cells(Rows.Count, "B").End(xlUp).Row مثال علي ذلك المطلوب اضافة البيانات السابقة الي كمبوبوكس 1 بحيث تظهر علي عمودين حتي اقوم بتنفيذ المطلوب تعرفنا مسبقا علي عمل الفورم واضافة كمبوبوكس بقائمة منسدلة لعمود بيانات واحد الان سوف نتعرف كن كيفية اضافة البيانات السابقة الي الكمبو بوكس لكن علي عمودين سوف نستخدم الكود التالي في حدث انطلاق الفورم Private Sub UserForm_Initialize() 'اضافة العناصر الي الكمبو بوكس With ComboBox1 ' عدد الاعمدة 2 .ColumnCount = 2 ' عرض العمود 50 .ColumnWidths = "50;50" 'اضافة صف العنوان .ColumnHeads = True 'مصدر البيانات .RowSource = "Sheet1!A1:B10" ' ويمكن ان يكون عن طريق اسم معرف كالتالي '.RowSource="Sheet1!HeightList" End With End Sub النتيجة وبمكن ايضا تعيين بيانات للقائمة داحل الكمبوبوكس والليست بوكس(عمود واحد) داخل الفورم باكثر من طريقة كالتالي كل طريقة مع الشرح والتطبيق بالمرفقات وسوف نتاول بالتفصيل اكثر من طريقة مع التطبيق ثانيا عند اضافة اكثر من عمود الي الليست بوكس Column Property: يشير الي عمود معين او مجموعة من الاعمدة والصفوف في الليست بوكس والكمبو بوكس بناء علي الجملة Control.Column(iColumn, iRow) خاصية عمود يتم استخدامها مع التعليمات البرمجية للماكرو أو VBA وليس متاحا في وقت التصميم. يحدد iColumn رقم العمود حيث iColumn = 0 يعني العمود الأول في القائمة. iRow يحدد رقم الصف حيث iRow = 0 يعني أن الصف الأول في القائمة. كلا iColumn وiRow هي قيم الأعداد الصحيحة التي تتراوح من صفر إلى عدد من الأعمدة والصفوف (على التوالي) في قائمة ناقص 1. وسوف يحدد كل عمود أرقام الصفوف والرجوع إلى عنصر معين، وسوف تحدد فقط عدد الأعمدة تشير إلى عمود معين في بمعنى الصف الحالي. ListBox1.Column (1) يشير العمود الثاني وهكذا.... مثال علي ذلك الجدول السابق وسوف نتاول اضافة العناصر الي اليست بوكس من مصدر البيانات الجدول (ورقة العمل) ومن ليست ديناميكي كالتالي Private Sub UserForm_Initialize() 'اضافة العناصر الي الليست بوكس With ListBox1 ' عدد الأعمدة .ColumnCount = 3 ' عرض كل عمود 50 .ColumnWidths = "50;50;50" ' اضافة صف العنوان .ColumnHeads = True ' مصدر البيانات .RowSource = "=Sheet1!A2:B10" ' لاحظ هنا استخدمت خاصيت مالتي سليكت .MultiSelect = fmMultiSelectMulti End With TextBox1 = "" End Sub Private Sub CommandButton1_Click() ' اضافة البيانات مباشرة الي اليست بوكس ListBox1.RowSource = "" 'اضافة العناصر ' صف العنوان لا ListBox1.ColumnHeads = False ' اضافة العمود الاول ListBox1.AddItem "عبدالله 3" 'عمل عمود جديد مع اضافة البيان ListBox1.List(0, 1) = "الثلاثاء" ' العمود الثاني ListBox1.List(0, 2) = "اليوم الثاني" ListBox1.AddItem "عبدالله 2" ListBox1.Column(1, 1) = "الأربعـاء" ListBox1.Column(2, 1) = "اليوم الثالث" ' العمود الثالث ListBox1.AddItem "عبدالله 1", 0 ListBox1.List(0, 1) = "الأثنين" ListBox1.List(0, 2) = "اليوم الأول" ' اضافة البيان في تكست بوكس العمود الثالث الصف الثاني TextBox1.Value = ListBox1.Column(2, 1) End Sub كل الاكواد المستخدمة مع الشرح سطر سطر في الكود بالمرفقات وللموضوع بقية .............>>>> لكن انا ملاحظ انه لاتوجد أسئلة حول الدروس اعتبرها بشارة خير وان الهدف المرجو من الدروس تم والحمد لله علي اية حال سوف اكمل الدروس .............. 4bb.rar D001.rar1 point
-
السلام عليكم الجزء الثاني Private Sub CommandButton2_Click() Application.ScreenUpdating = False On Error Resume Next If ComboBox1 = "" Then MsgBox "YOU HAVE TO CHOSE ITEME CODE FROM LIST FIRST", vbExclamation, "WRONG STEP" ComboBox1.DropDown ElseIf TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then MsgBox "YOU SHOULD FILL ALL FIELDS", vbExclamation, "EMPTY FIELDS" Else Beep If MsgBox("YOU ASKED TO MODIFY :" & vbNewLine & "" & vbNewLine & "CODE : " & ComboBox1 _ & vbNewLine & "" & vbNewLine & "NAME : " & TextBox2 & vbNewLine & "" & vbNewLine & "PRICE : " & TextBox3 & vbNewLine & "" & vbNewLine & "QU : " & TextBox4 & vbNewLine & "" _ & vbNewLine & "YOU WANT TO CONTINUE ?", vbYesNo + vbQuestion, "ENTRY CONFIRMATION") = vbYes Then Sheets("Sheet1").Select ActiveCell.Offset(0, 1).Value = TextBox2.Text ActiveCell.Offset(0, 2).Value = TextBox3.Text ActiveCell.Offset(0, 3).Value = TextBox4.Text Me.TextBox2.Text = "" Me.TextBox3.Text = "" Me.TextBox4.Text = "" Me.ComboBox1.Text = "" Me.Hide MsgBox "DATA HAS BEEN MODIFIED SUCCESSFULLY", vbInformation, "DONE" End If End If Application.ScreenUpdating = True End Sub 1. حدث الضغط على الزر وايقاف اهتزاز الشاشة والانتقال الى التالي عند الخطاء Private Sub CommandButton2_Click() Application.ScreenUpdating = False On Error Resume Next 2. شرط خلو ComboBox1 من البيانات (تظهر رسالة ) ويتم انزال القائمة المنسدلة If ComboBox1 = "" Then MsgBox "YOU HAVE TO CHOSE ITEME CODE FROM LIST FIRST", vbExclamation, "WRONG STEP" ComboBox1.DropDown 3. تنبيه خلو التيكست بوكس من القيم تظهر رسالة تنبيه ElseIf TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then MsgBox "YOU SHOULD FILL ALL FIELDS", vbExclamation, "EMPTY FIELDS" 4. في حالة عدم تحقق شرط خلو من البيانات تظهر رسالة من عدة أسطر وفيها خيار YES & NO Else Beep If MsgBox("YOU ASKED TO MODIFY :" & vbNewLine & "" & vbNewLine & "CODE : " & ComboBox1 _ & vbNewLine & "" & vbNewLine & "NAME : " & TextBox2 & vbNewLine & "" & vbNewLine & "PRICE : " & TextBox3 & vbNewLine & "" & vbNewLine & "QU : " & TextBox4 & vbNewLine & "" _ & vbNewLine & "YOU WANT TO CONTINUE ?", vbYesNo + vbQuestion, "ENTRY CONFIRMATION") = vbYes Then 5. عند إختيار YES وضع قيمة TextBox2 في نفس صف الخلية النشطة والعمود الاول بعدها و قيمة TextBox3 في نفس صف الخلية النشطة والعمود الثاني بعدها و قيمة TextBox4 في نفس صف الخلية النشطة والعمود الثالت بعدها Sheets("Sheet1").Select ActiveCell.Offset(0, 1).Value = TextBox2.Text ActiveCell.Offset(0, 2).Value = TextBox3.Text ActiveCell.Offset(0, 3).Value = TextBox4.Text ثم مسح قيم الموحودة في مربعات النص Me.TextBox2.Text = "" Me.TextBox3.Text = "" Me.TextBox4.Text = "" Me.ComboBox1.Text = "" وإخفاء الفورم وظهور رسالة تنبيهية بإتمام التعديل Me.Hide MsgBox "DATA HAS BEEN MODIFIED SUCCESSFULLY", vbInformation, "DONE" ان شاء الله اكون وفقت في الشرح ابواحمد1 point
-
اخي الحبيب ابو احمد اسمح لي بداية ان اشكرك على شرحك الجميل والقيم ولو انني انا يمكن اول واحد حملت المرفق ليلة امس وفكرت اكثر من نصف ساعه عن كيفية توصيل المعلومه للسائل هل يريد شرح مبسط ام شرح معمق ولم افهم وقتها ماهية فهم اخي طاهر عن الاكواد وكيف سأوصلها له . فتوقفت لارى ردود الاعضاء لعلي افهم غرض السائل بالضبط ولكن جاء حبيبنا اخي ابو احمد وماقصر وقام بالواجب وزياده ================================================================== اما بالنسبه لاستفسار اخي طاهر عن ما يلي: كما قال اخي ابو احمد حرف i هو اسم متغير اخترناه ليقوم بالوظيفه التاليه: اولا طبعا يمكن اختيار بدل هذا الحرف اي شئ تحبه مثل ان تضع اذا هنا خلصنا من مفهوم الحرف الذي يشغلك اما بالنسبه للرقم 2 فهنا يعني اننا سنبدأ في البحث من السطر الثاني يعني لو حطيت رقم 3 ممكن هذا ولكن سيتجاهل البحث من السطر الثاني وسيبدأ من السطر الثالث وهكذا ......... وهنا ايضا خلصنا من الرقم 2 طبعا هنا السطر موضح نفسه بنفسه اما ER هنا فهنا عرفها صاحب الكود بما هو موجود في حدث SHEET1 وهي مسؤوله عن عدد الصفوف من A1 الى A2 والى A3 وهكذا ........... باختصار صاحب الكود اراد ان يتوه بعض الشئ ولكن يمكنك ان تضعه في نفس سطر الكود ليصبح كمايلي For i = 2 To Sheets("Sheet1").Range("A1").CurrentRegion.Rows.Count وسيعمل معك بنفس المبدأ وبالرجوع الى سؤالك اخي طاهر سترى انه لو حذفت هذا السطر Sheets("Sheet1").Cells(i, "A").Select سيعمل الكود معك بالشكل الطبيعي دون اخطاء ولكن بشرط مهم ان تكتفي فقط بعملية البحث دون اجراء اي تعديل لان الكود في حال بقاؤه سيحدد الخليه التي بحثت عنها ومنها سيأتي تنفيذ كود التعديل اما ان حذفته سيبحث عن الخليه المطلوبه وسيجدها ولكن لن يحددها فلن تتم وقتها عملية التعديل انا اعلم تماما ان شرحي ربما لن يكون بقوة شرح اخونا ابواحمد ولكنا نحاول ان نجتهد بعض الشئ1 point