بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/26/15 in مشاركات
-
4 points
-
الأخ العزي الأز / خالد الرشيدي والأخ العزيز/ ياسر العربي الف ألف مبروك ترقية مستحقة عن جدارة والكل يشهد لكم بذلك فإلى مزيد من التقدم والترقي في كافة مجالات حياتكم تقبللا تحياتي واحترامي والشكر موصول لأستاذنا القدير صاحب الهم الكبير ودواء العليل في هذا المنتدى حبيبنا ياسر خليل2 points
-
أسعد الله أوقاتكم بكل خير فيما يلي الدرس العاشر من دورة "إكسيل 2013 المستوى المتقدم" بعنوان دوال قواعد البيانات- الجزء الثاني الدرس العاشر - دوال قواعد البيانات 2 أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير أخوكم م/نضال الشامي Google+2 points
-
استاذ صقر هتنزل الاختبارات امتى عشان الحق اذاكر اصلي بقالي فترة مش براجع وشكلي هشيل المادة وبعدين بابا بيقولك راجعلي كويس عشان مش بفهم بسرعه يالهوي علي الحسد2 points
-
أستاذ ياسر والأستاذ أبو البراء والأستاذ الصقر اذا بالإمكان تنزيل SQL وهو برنامج مجاني من مايكروسوفت وانشاء الله ستاتي الدروس لاحقا ------ انا اكثر اشي فادني بهاي المواضيع، انه بشغلي برنامج محاسبة ضخم أساسه sql وانا مش كثير راضي عن التقارير اللي بعطيني إياها البرنامج المحاسبي اضطريت اشبك البرنامج المحاسبي مع الاكسل عن طريق ربط الاكسل بجداول اس كيو ال وحاليا بكسبة زر ببني كل التقارير اللي بدي إياها مع رسوم بيانية بدون ادخال أي قيمة يدوية ------- ومع التجرية اقدرت ابني برامج بواجهة اكسل وبدون أي وجود للبيانات فيها، فقط برامج للتقارير وأيضا برامج اكسل تكون فقط بها شاشات ادخال وتخزن البيانات بقواعد بيانات اس كيو ال --------2 points
-
يا ابو البراء ياسر ده خط كبير اسالنى انا محدش عارفه غيرى ده بحر وبحوره غويطه يبان قدامك انه غلبان وكدا وهو بقولك يا ياسر انا مش عايزك تبطل هرش فى دماغك طلع اللى عندك ومتخفش ولو عايز بخاخ على حسابى2 points
-
الطريقه التاسعه :- تعبئه الكمبوبوكس بدون تكرار وبناء على شرط باستخدام الحلقه التكراريه For Each و المتغير Collection وداله If (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرار وبناء على اسم المعرض شاهد الصوره كما هو مبين بالصوره انا عايز اقوم بتعبئة الكمبوبوكس ولكن حسب عملاء معينه مثلا وليكن الجزائر ( عبدالعزيز البسكرى و شوقى ربيع ) فقط نعمل ايه؟ هو نفس الكود السابق اللى بالطريقه الثامنه مع تعديل بسيط تعالو نشوف الكود كان ايه ؟ وما هو التعديلات اللى هتم عليه ؟ Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub اللى هيتم تغييره بالكود 1- هذا السطر للحلقه For Each For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) هنا بدل الحلقه ما بتلف على خلايا العمود A هخليها تلف على خلايا العمود B زى كدا For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) 2- بعد سطر الحلقه التكراريه هعمل شرط لجلب البيانات وذالك من خلال قاعدة If انا عايز اجيب عملاء الجزائر فقط If data.Offset(0, -1).Value = "الجزائر" Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If زى ما احنا شايفين سطر الكود استخدمنا If لعمل شرط ما هو الشرط ؟ الشرط ان data اللى بتمثل كل خلية فى العمود B يبص على الخليه اللى قبلها يعنى مثلا لما يكون data قيمتها B2 يبص على الخلية اللى قبلها اللى هى A2 ( طبعا دا تم من خلال offset ) طيب هو لما يبص على الخلية اللى قبلها A2 هيختبر ايه ؟ عايزه يشوف هل مكتوب بها الجزائر أو لا ؟ اذا كانت بها الجزائر ينفذذ الاسطر التالية ثم انهاء If وطبعا شرحنا معنى هذه الاسطر قبل كدا وبعد هذه التعديلات البسيطه على الكود هيكون شكله النهائى كدا فى حدث فتح الفورم Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) If data.Offset(0, -1).Value = "الجزائر" Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End with End Sub شاهد الصوره عند فتح الفورم ************************************************************************************** واحد فنان هيسئلنى سؤال فنى ************************************************************************************** هو انا لو عايز مصر مثلا مش الجزائر لازم ادخل كل مره على الكود واغير فى هذا السطر If data.Offset(0, -1).Value = "الجزائر" Then هغير بدل من الجزائر اعملها مصر If data.Offset(0, -1).Value = "مصر" Then هقوله الاجابه ايوا لكن انا عارف قصدك انت عايز طريقه احترافيه وهى تعبئة الكمبوبوكس بناء على اخر فى الحاله دى لازم اعمل كمبوبوكس جديد فى الفورم اتبع معى الخطوات التالية الخطوه الاولى :- هنصمم كمبوبوكس جديد شاهد الصوره الخطوه الثانيه : عمل كود فى حدث فتح الفورم هنعمل كود ليقوم بتعبئة الكمبوبوكس 2 بالبيانات فى العمود A الخاصه باسماء المعارض ولكن دون تكرار امامك طريقتين 1- اذا كان الاسماء للمعارض ثابته ممكن تعملها من خلال المصفوفه زى ماعرفنا قبل كدا زى كدا Private Sub UserForm_Initialize() Dim a As Variant a = Array("اليمن", "مصر", "سوريا", "الجزائر") ComboBox2.List = a End Sub 2- اذا كان الاسماء للمعارض متغيره اذن هنستخدم كود المجموعات مع شرط عدم التكرار فهيكون الكود كدا كما تعلمنا من قبل Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Set group1 = New Collection For Each data In Sheet1.Range("a2:a" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text Next data With Me.ComboBox2 For i = 1 To group1.Count .AddItem group1(i) Next i End With End Sub وعند تشغيل الفورم سيكون كالتالى الخطوه الثالثه :- انا عايز عند الاختيار من الكمبوبوكس 2 يتم تعبئة الكمبوبوكس 1 بالاسماء التابعه له تلقائيا اذن هعمل كود فى حدث تغيير الكمبوبوكس 2 ( يعنى كل ما يتم تغيير قيمة الكمبوبوكس 2 تتغير تعبئة الكمبوبوكس 1) هجيب نفس الكود اللى كان فى بداية الدرس اللى هو التعبئة بناء على شرط مع تغيرات بسيطه واحطه فى حدث تغيير الكمبوبوكس 2 كالتالى Private Sub ComboBox2_Change() ComboBox1.Clear On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) If data.Offset(0, -1).Value = ComboBox2.Value Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub اللى تم تغييره فى هذا الكود هو اضافه السطر الاول يعنى تنظيف ومسح محتوى قائمة الكمبوبوكس 1 لاستضافه البيانات الجديده حسب التعديل فى الكمبوبوكس 2 وايضا استبدال هذا السطر If data.Offset(0, -1).Value = "الجزائر" Then بالسطر التالى If data.Offset(0, -1).Value = ComboBox2.Value Then جعل الشرط حسب محتوى الكمبوبوكس 2 شاهد الصوره التالية عند اختيار مصر من الكمبوبوكس 2 سيظهر القائمة فى الكمبوبوكس 1 باسماء عملاء مصر فقط شاهد الصوره التالية عند اختيار سوريا من الكمبوبوكس 2 سيظهر القائمة فى الكمبوبوكس 1 باسماء عملاء سوريا فقط **** كدا عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على شرط **** وكمان عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على كمبوبوكس اخر( وطبعا فى طرق اخرى كتير جدا لتعبئة كمبوبوكس بناء على كمبوبوكس اخر ) يعنى درس النهارده دسم ومحتاج تركيز ولازم تجربو الكلام ده عملى ارجوا يارب ان اكون وفقت بالشرح والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى2 points
-
أخى أنس مشكور على الأكواد الجميلة دى واثراء للموضوع ده كود تغيير المستخدم SwitchUser Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Sub SwitchUser() Dim su su = ExitWindowsEx(EWX_REBOOT, 0) End Sub تحياتى2 points
-
2 points
-
اخي واستاذي الفاضل نضال الشامي بجد مجهود رائع وعمل متقن وجزيت خيرا علي هذه الدروس القيمة لي نصيحة صغيرة جدا دروس الميديا اقل تصفحا في اوقات العمل لذا انا واحد من الاشخاص هروح علي الدرس المشروح كتابة وصور ومثال توضيحي للوصول الى ما احتاجه بسرعه ولكن موضوع الشرح فيديو هذا سأقوم بتصفحه عند العودة من العمل فعملك المتقن يسقط منه فئة من الناس عن مشاهدة وخصوصا اصحاب السرعات الضعيفة ايضا واللي معندهمش وقت فاقترح اضافة شرح ولو بسيط بالصور والكتابة ومثال الحل والتمارين تحت دروس الميديا يبقي كدا وصلنا علمنا لمعظم الشرائح مجرد فكرة تقبل مروري الرخم صح ياسر العربي2 points
-
دائما رائع أخى الغالى / مختار جزاك الله كل الخير على كل ما تقدمه تقبل منى خالص تحياتى وتقديرى2 points
-
دائما اخوانا هنا سباقين بالحلول او انا اللي دايما بتأخر مش عارف المهم مشكور اخي العيدروس واسمحلي لازم احط التاتش المصري بردو دا عند غلق الملف مثل ما قال اخي الغالي Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.CommandBars("Ply").Enabled = True End Sub اما لو من شيت لاخر فا تبقي كدا Private Sub Worksheet_Activate() Application.CommandBars("Ply").Enabled = False End Sub Private Sub Worksheet_Deactivate() Application.CommandBars("Ply").Enabled = True End Sub تقبل مروري المتواضع ياسر العربي2 points
-
حط في حدث اغلاق الملف Application.CommandBars("Ply").Enabled = true2 points
-
ADO Connectionاستخدام الاكسيل كقاعدة بيانات عن طريق وسيلة الاتصال اعتقد ان هذا الموضوع سيعطيكم معلومة جديدة في كيفية التعامل مع الاكسل كقاعدة بيانات في البداية الطريقة تعتمد على وسيلة الاتصال Active Data Object ADO وهي وسيلة اتصال بين برنامج كتابة الاكواد و قاعدة البيانات مثلا VB.net and SQL Visual Basic and Access وهي حصرية لبرامج مايكروسوفت فقط ولكي يكون لدينا اتصال كامل يجب ان يكون لدينا Connection String وهو عنوان قاعدة البيانات التي سيتم الاتصال بها، والذي من خلاله سيكون التالي: * فتح اتصال* * جملة الاستعلام* * انهاء الاتصال* وهنا تكمن الميزة بهذه الطريقة، فجملة الاستعلام يجب كتابتها بطريقة SQL dataBase وهنا تنطبق معظم جمل SQL امثلة على الجمل select * from [data] Select Count(Customer) from [data] Select Sum(Customers) from [data] where city ='Ramallah' تعلم كتابة جمل جديدة وغيرها من الجمل التي يعرفها جيدا المبرمجون باستخدام قواعد البيانات SQL,MYSQL,Oracle اكبر فائدة لهذه الطريقة انه يمكن من خلالها تصميم واجهة برنامج على الاكسل او تصميم فورم على الاكسل وحفظ البيانات على ملف اكسل اخر بدون الحاجة الى فتحه ولاستخدام هذه الطريقة يجب تفعيل التالي Tools-References بالمرفق ملف اكسل يحتوي مثال على ما تم ذكره سابقا database.zip1 point
-
هذا البرنامج البسيط الذي أسميته "خير جليس" هي ثمرة فكرة بدرت في ذهني حينما رأيت تراكم الكتب في منزلي ففكرت أنه لابد لكل واحد لديه نفس المشكلة في بيته فارتأيت إنجاز هذا العمل المتواضع ليسهل البحث عن الكتاب وكذلكك تنظيم الكتب وعدم اتلافها أوضياعها، ثم بعد ذلك تطورت الفكرة فرأيت أن أجعلها حتى لغير المنزل بل للمكتبات العامة ...وغيرها إن أمكن ذلك وأرجو أن ينال إعجابكم ورضاكم وأن ينفع الجميع إنشاء الله فقط لاتنسونا بأرائكم واقتراحاتكم بعد التفحيص والتمحيص في البرنامج ولا تنسونا من خالص دعائكم أيضا، وكذلك دون أن أنسى شكري الخالص لكل من ساندوني في كل اشكالاتي واستفساراتي التي كنت عالقا فيها من الإخوة الأعضاء والمشرفين لهذا المنتدى وكذلك التجارب والخبرات الكثيرة التي أخذتها، وهذا وإن أصبت فبتوفيق من الله عز وجل وإن أخطأت فمن تقصيري و من الشيطان. وفي الأخير تقبلوا مني فائق التقدير والإحترام . وشكرا المرفق بحجم كبير لذلك رفعته على رابط خارجي: http://www.up-gulf.com/do.php?id=26141 point
-
فنون وأساليب التنبؤ باستخدام الاكسيل نعرض أساليب التنبؤ بالدوال وأدوات تحليل البيانات الموجودة في برنامج ميكروسوفت اكسيل ثم نتناول الطرق الرياضية والاحصائية في كيفية حساب الدالة. للتأكيد على المزايا التي يوفرها الاكسيل والدقة العالية التي يحسب بها النتائج ******************************************** الفئات المستهدفة: المدراء الماليين رؤساء الحسابات المحاسبين مديري المبيعات المهتمين بدراسات الجدوى العاملون في مجال التخطيط المالي والموازنات التقديرية -------------------------------------------------------------------- دورة مجانية 100% يستضيفها جروب تدريب وتأهيل المحاسبين بالإسكندرية برعاية المحاسب القانوني الأستاذ احمد وفا. وسيتم تحديد موعد كل محاضره والاعلان عنها وسيكون الحضور اون لاين للانضمام في الدورة https://www.facebook.com/events/509996679169161/ ------------------------------------------------------ فيديو تعليمي بداخل الفيديو كتيب pdf+ ملفات اكسيل تطبيقية ارجو من الجميع المشاركة فهذه الدورة مجانية 100% ولا تنسونا بصالح دعاؤكم ملفات الاكسيل التطبيقية.rar1 point
-
السلام عليكم ورحمة الله وبركاته تناولت فى الفترة الماضية مايأتى حماية للشيت ما عدا نطاق محدد أو Protect Sheet Expect Range على الرابط http://www.officena.net/ib/topic/64169-حماية-للشيت-ما-عدا-نطاق-محدد-أو-protect-sheet-expect-range/ حماية كل أوراق العمل ما عدا نطاقات محددة أو Protect All Sheets Expect Ranges على الرابط http://www.officena.net/ib/topic/64193-حماية-كل-أوراق-العمل-ما-عدا-نطاقات-محددة-أو-protect-all-sheets-expect-ranges/ واليوم أقدم لكم حماية تلقائية للبيانات بمجرد فتح الملف لكل أوراق العمل مع استثناء نطاقات محددة قابلة لتعديل البيانات بها و بكلمة سر كلمة السر هى unloock ( ممكن تغييرها من الكود ) وهذا بناء على طلب أخونا وائل الأسيوطى الكود وعليه الشرح Dim sh As Worksheet Private Sub Workbook_Activate() ' Auto Protect Workbook Expect Ranges ' by mokhtar 25/10/2015 With Application .DisplayAlerts = False ' تعطيل التنبيهات .ScreenUpdating = False ' تعطيل تحديث الشاشة For Each sh In Worksheets ' لكل شيت فى الاوراراق If sh.ProtectContents = True Then ' اذا كان الشيت محميا فان ' لا تفعل شيئا Else ' واذا لم يكن محميا sh.Protect ' اجعل الشيت محميا End If ' انهاء الشرط Next sh ' الشيت التالى ActiveWorkbook.Save ' حفظ .DisplayAlerts = True ' اعادة تشغيل التنبيهات .ScreenUpdating = True ' اعادة تشغيل تحديث الشاشة End With End Sub Private Sub Workbook_Open() With Application .DisplayAlerts = False ' تعطيل التنبيهات .ScreenUpdating = False ' تعطيل تحديث الشاشة On Error Resume Next ' فى حالة حدوث خطأ تجاهله وانتقل للأمر التالى ' حلقة تكرارية للتعامل مع كل شيت فى الملف For Each sh In Worksheets ' اذا كانت محتويات الشيت محمية فان If sh.ProtectContents = True Then ' اجعل الشيت غير محمياً sh.Unprotect ' حلقة تكرارية لحذف جميع النطاقات المسموح يتعديلها فى الشيت For i = 1 To sh.Protection.AllowEditRanges.Count Debug.Print sh.Protection.AllowEditRanges(i) sh.Protection.AllowEditRanges(i).Delete Next i ' انهاء الحلقة التكرارية ' اضافة النطاقات المسموح بتعديلها أثناء حماية الشيت Sheets("Sheet1").Protection.AllowEditRanges.Add Title:="mokhtar1", Range:=Range("A18:G29"), Password:="unloock" ' اضافة النطاق فى الورقة الاولى Sheets("Sheet2").Protection.AllowEditRanges.Add Title:="mokhtar2", Range:=Range("F6,H7,D8,F14,H14"), Password:="unloock" ' اضافة النطاق فى الورقة الثانية Sheets("Sheet3").Protection.AllowEditRanges.Add Title:="mokhtar3", Range:=Range("D2,F3,D6,B8,F11,B14,D14"), Password:="unloock" ' اضافة النطاق فى الورقة الثالثة Sheets("Sheet4").Protection.AllowEditRanges.Add Title:="mokhtar4", Range:=Range("F10:F23"), Password:="unloock" ' اضافة النطاق فى الورقة الرابعة Else sh.Protect End If ' انهاء الشرط Next sh ' انهاء الحلقة التكرارية .DisplayAlerts = True ' اعادة تشغيل التنبيهات .ScreenUpdating = True ' اعادة تشغيل تحديث الشاشة End With End Sub المرفق للتجربة تحياتى والسلام عليكم Auto Protect Workbook Expect Ranges By Mokhtar.rar1 point
-
السلام عليكم ورحمة الله وبركاته بالكلمات لا يمكننى ان اعبر عن سعادتى بهذه التهنئة الرائعة ويعجز اللسان عن تقديم الشكر بالقدر اللائق بحضراتكم الاستاذ / ابو عبد الاله الاستاذ /ابو عبد الرحمن البغدادى الاستاذ القدير / عادل حنفى الاستاذ / محى الدين ابو البشر الاخ الحبيب أ/ الشهابي لكم جزيل الشكر والتقدير اخوتى واساتذتى الكرام ... وفقنا الله جميعا لما فيه الخير الاستاذ الكبير / أبو البراء .. صاحب التشجيع والدعم المستمر .. والله انى احبك فى الله .. .. لك منى خالص التحية والاحترام لشخصكم الكريم1 point
-
مبارك ستاذ خالد الراشدي لمست تجاوبك الجميل وحلولك الذكية بارك الله بك وسدد خطاك1 point
-
1 point
-
ألف مبروك ويستحقان هذه الترقية جهودهما واضحة وبارزة نسأل الله تعالى لهما التوفيق ومن تقدم لتقدم إن شاء الله .1 point
-
السلام عليكم إستكمالاً لما بدأه الاستاذ / يــاسر العربى ... جزاه الله خيراً اليك الطلب الثانى اليك المرفق 2ترحيل.rar1 point
-
الله يرحم لما كنا بنطفيه من الفيشة دلوقتي ما شاء الله بنطفيه من الاكسيل1 point
-
أخي الحبيب مختار بارك الله فيك إنت عارف إني دايما بشوف وأجرب وأرجع أجرب لحد ما الاقي فيه مشكلة ولا كله تمام جرب تغير الباسورد الموجود داخل الكود ..واحفظ الملف وافتحه وجرب تعدل في الشيت الأول ..مفيش مشكلة هتكتب كلمة السر وكله تمام روح لورقة تانية وحاول تعدل في الخلايا المحددة هيطلب كلمة سر أدخل كلمة السر الجديد مش هتشتغل ...1 point
-
يرجى طرح الموضوع من بداياته أخي الكريم مازن بدايةً من بدء تنصييب البرنامج .. في انتظار دروسك على أحر من الجمر ستجدني إن شاء الله أول الطلبة المتقدمين في صف التعلم أخي ياسر العربي شكلك طالب مشاكس ..ابقا اقعد في التختة اللي جنبي عشان أستفيد منك1 point
-
1 point
-
أخى الغالى ياسر فتحى بارك الله فيك و مشكور على مرورك والله فى أيام كثر فيها (اخطف واجري قبل ما صاحب الموضوع يدري ... )1 point
-
أخى العزيز / ياسر العربى تحية طيبة وبعد ،،،،،، لا عليك إطلاقاً وليس هنالك أى داعى للإعتذار بل أنا الذى أعتذر لك إن كنت قد أسأت الظن بك أو بأحد. خالص شكرى وتقديرى أخوك عيد مصطفى1 point
-
زي ما اخويا وحبيبي الغالي ابو البراء قال توضح لينا الفكرة ولو بمثال وطريقة الربط انا بصراحة دخلت هرشت في دماغي وخرجت كل اللي عرفته لاني بردو وحش وبيري غويط والمصري ميبقاش مصري لو محطش التاتش بتاعة ومينفعشي يقول معرفشي ان دا زي ما انا كنت بعمل منتديات ومواقع وارفعها علي اي استضافة بحتاج اني اربطها بقاعدة بيانات DataBaseName = "------" ServerName = "------" UserId = "------" Password = "------" بعرف اسم القاعدة وعنوان السيرفر واسم المستخدم وكلمة المرور عشان يقدر المنتدى او الموقع ايا كان يقدر يتواصل مع قاعدة بيانات الsql في انشاء الجداول ووضع البيانات المراد العمل عليها من ادخال واستعلامات زي اسماء المستخدمين وكلمات المرور والمواضيع والكلام دا فا هنا ربطنا الاكسيل بقاعدة اس كيو ال وبعدين استخرجنا قيمة من احد الجداول داخل القاعدة واخرجناها في الخلية Range("a3").CopyFromRecordset rs ياترى اكمل هرش في دماغي ولا ابطل1 point
-
اخي وحبيبي الغالي/ ياسر فتحي البنا لك كل الشكر والتقدير لمروركم الكريم هذا ونراكم في تقدم وعطاء باذن الله والمشترك بينا الاسم والجيرة كمان انا من منيا القمح شرقية يعني سكة واحدة فدا شرف لينا حبيبي1 point
-
اخى الفاضل / ياسر العربى الإسم الغالى مبارك على الترقية المستحقة مع مزيد من التقدم والرقى تقبل خالص تحياتى وتقديرى1 point
-
استاذى الفاضل نضال الشامى جزاكم الله خيرا وجعل اعمالكم فى ميزان حسناتكم تقبل منى وافر الاحترام والتقدير1 point
-
أخي محمد الخازمي كما شرحت وتفضلت هذه طريقة تنفيذ الكود أن تقوم بخفض مستوى الحماية عن الملف وتقوم بعمل تحديث للخلية a1 بحيث يجلبلك سريال (لوحة الام) وبعدها قم بإغلاق الملف وافتحه مرة أخرى إذا كان مطابق يفتح مباشرة وعند نقل نفس الملف الى جهاز أخر وفتحه يقوم الكود بفحص الرقم الموجود في الخلية A1 ويكون في هذه الحالة عدم التطابق "يعطيك رسالة مفادها أن البرنامج نسخة للعرض فقط كمثال" طبعاً أنت في ملفك تسطيع إضافة ماتريد في حال عدم التطابق مثلا (اغلاق الملف مع الحفظ أو بدون الحفظ) وفي هذه الحالة لاتسطيع ابدأ فتح الملف مرة أخرى أتمنى أن تكون فكرتي وصلت اليك بشكل صحيح تقبل تحياتي1 point
-
بضغطة زر واحدة : يتم تعديل المراحل فقط بغض النظر عن الشعب وذلك باستخدام استعلام التحديث تبدأ بالمراحل العليا ثم الدنيا زيادة في الايضاح : لنفرض ان المرحلة هي المتوسطة فقط وهي ثلاث صفوف 1- اولا يتم حذف الطلاب المتخرجين في الصف الثالث 2- نعمل استعلام تحديث للصف الثاني ( تحديث الى : "الصف الثالث" ) وفي حقل المعايير نضع : "الصف الثاني" ثم نشغل الاستعلام يتم من خلال العملية السابقة استبدال الكلمة الصف الثاني بالكلمة الصف الثالث ثم نكرر هذه العملية لتحديث الصف الاول1 point
-
اخي وليد لقد جهزت لك الملف للرفع الورقة محمية لذا لم استطع اضافة زر للماكرو اليك الكزد لهذاالغرض يمكنك نسخه في موديل جديد و تعيين زر له او تشغيل الماكرومن الملف المرفق Sub split_in_tow_columns1() Dim ws1, ws2 As Worksheet Dim Myrange As Range Dim lr, My_nb_rows As Integer Dim c, k As Integer k = 5 c = 3 Set ws1 = Sheets("ATTENDANCE"): Set ws2 = Sheets("Number trades in the project") lr = ws1.Cells(Rows.Count, "f").End(3).Row Set Myrange = ws1.Range("f9:f" & lr) ws2.Range("c5:c26").ClearContents ws2.Range("f5:f26").ClearContents For i = 9 To lr t = Application.CountIf(ws1.Range("f5:f" & i), Range("f" & i)) If t = 1 Then Cells(i, 6).Copy ws2.Cells(k, c) k = k + 1 If k > 26 Then k = 5: c = 6 End If Next End Sub برنامج حظور وانصراف salim.zip1 point
-
السلام عليكم الاخ خالد الرشيدي اشكرك جزيل الشكر جزاكم الله خيرا على مجهودكم الطيب1 point
-
اخى الحبيب / يــاسر العربى مبارك عليكم الترقية المستحقة ... الى مزيد من التقدم والرقى ان شاء لله واشارك حضرتك الشكر والتقدير للمنتدى وأساتذته والقائمين عليه على هذه الثقة الغالية التى منحونى اياها وفقنا الله جميعاً لما فيه الخير ... والسلام عليكم .1 point
-
أخي الحبيب عيد مصطفى رويدك رويدك .. لا تغضب .. لا تغضب واتق الله في إخوانك وأحسن الظن بهم لست أنت المقصود على الإطلاق من الحوار ... الحوار في عموم الأمر .. ولك مني اعتذار إذا كنا قد أسأنا إليك تقبل وافر ودي واحترامي1 point
-
ألف مبروك الترقية لخبير معتمد أخي الحبيب خالد الرشيدي فأنت والله تستحقها عن جدارة بارك الله فيك ولا حرمنا الله منك أبداً1 point
-
أخي الحبيب خالد الرشيدي عمل رائع ومتميز كعادتك دائماً .. تقبل وافر تقديري واحترامي1 point
-
أخي الكريم مازن ممكن مزيد من التفاصيل عن الـ SQL .. حيث أن معظمنا يفتقر للتعامل مع SQL .. بارك الله فيك وجزاك الله كل خير1 point
-
الطريقه الثامنه :- تعبئه الكمبوبوكس بدون تكرار باستخدام الحلقه التكراريه For Each و المتغير Collection (طريقه احترافيه) هذه الطريقه طريقه احترافيه من حيث فكرة الكود وكتابته ولكنها غير عملية ومفيده فى البيانات ذات النطاق الكبير نظرا لاعتمادها على عدد 2 حلقه تكراريه مما يسبب البطئ فى ادخال البيانات لو كان نطاق العمل كبير لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرارشاهد الصوره انا كل مره بالشرح بكتب الكود وبعدين اشرحه بالتفصيل المره دى انا هشرحه قبل ما اكتبه تعالو نشوف ايه اللى بيحصل ببساطه ايه المطلوب ؟ المطلوب هو ادخال البيانات اللى بالشيت المظلله باللون الاخضر ( A2:B7) اذن لازم اعمل متغير يعبر عن كل خلية بالنطاق فنعمل ايه ؟ Dim data As Range انا دلوقتى عايز العمودين دول يدخلوا فى الكمبوبوكس برضوا فى عمودين انا هعمل ان كل بيانات عمود عباره عن مجموعه بمعنى ايه الخلايا من A2 الى اخر خلية بها بيانات فى العمود A ( دى تكون مجموعه اولى ) والخلايا من B2 الى اخر خلية بالعمود A ( دى تكون مجموعه تانية ) طيب علشان اعلن عن مجموعه يبقى لازم اعمل كدا Dim data As Range Dim group1 As Collection Dim group2 As Collection عرفت متغير وسميته group1 وقلت ان المتغير ده من النوع Collection ( وCollection تعنى مجموعه ) طبعا زى ما اتفقنا انى عايز اعرض عمودين يبقى لازم اعرف كل عمود فى مجموعه فأنا محتاج اعرف متغير لكل مجموعه لذالك عملت group1 و group2 طيب group1 و group2 عباره عن ايه ؟ عباره عن مجموعات جديده اذن لازم استخدم set لتحويل قيمة المتغير الى كائن طيب أزاى ؟ بالشكل ده شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection حولت قيمة المتغير group1 الى كائن يساوى مجموعه جديده وايضا حولت قيمة المتغير group2 الى كائن يساوى مجموعه جديده ********************************************************************************************* محلوظه مهمه جدا انا عملت مجموعتين لاننا عايزين نقوم بتعبئة الكمبوبوكس ببيانات العمودين A و B لكن لو حضرتك عايز عمود A فقط اذن تعرف مجموعه وحده فقط يعنى على حسب عدد الاعمده هتعرف مجموعات *********************************************************************************************** طيب دلوقتى عملنا بالكود مجموعتين عايزين ندخل فيهم البيانات بقى اللى بالشيت فنعمل ايه ؟ هنستخدم الحلقه التكراريه For Each ونسمى الحلقه باسم Data ونقول ان الحلقه تبدأ من A2: الى اخر خليه بها بيانات وطبعا اتكلمنا بالتفصيل قبل كدا عن الحلقه For Each راجع الدرس السابق تعالو نشوف الكود وصل لوين ؟ Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next data كدا عملنا الحلقه والحلقه هتلف من خلال Next بس كدا هتلف على الفاضى مجرد بس هتمر على الخلايا اللى بالنطاق وتقولها السلام عليكم ان مش عايز سلامات وطيبون دلوقتى انا عايز استفيد من لفتها ومن عملها عايز اقولها ان group1 المجموعه الاولى تساوى العمود A اللى هو Data وعايز ان group2 المجموعه الثانيه تساوى العمود B اللى هو بجوار الـ Data ( من خلال offset) فالكود هنضيف فيه ايه ؟ شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data group2.Add data.Offset(0, 1).Value Next data قلنا ان group1 قم بأضافه data ( اللى هى خلايا العمود A) من خلال Add وكذالك group2 قم بأضافه خلايا العمود B واحد هيقولى بس كدا هياخد كل البيانات اللى بالنطاق حتى وان كانت مكرره وانت قلتلى ان الطريقه دى مش هيكرر البيانات فى الكمبوبوكس هو انت بتضحك عليا هقوله يا عم اصبر شوية انا عايز اديك الطريقتين لو عايز البيانات زى ما هى حتى وان كانت مكررة يبقى الكود السابق كدا تمام ولكن لو مش عايز تكرار بسيطه جدا هنعمل اضافه صغيره جدا جدا جدا شوف الكود On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data اللى مركز معايا وصاحى هيعرف ايه اللى تم اضافته تم اضافه السطر الاول وهو عباره On Error Resume Next وتعنى عند حدوث اى خطا انتقل الى السطر التالى واحد هيقولى طيب وهو هيحصل خطأ ليه هو مش الكود مكتوب صح هقوله لان انت طلبت عدم تكرار الاسماء فالكود عندما يصادف اسم مكرر هيتوقف ليتم تبليغ حضرتك فعلشان كدا كتبتله هذه العباره انه مش عايزه يبلغنى وينتقل الى السطر التالى ويكمل الحلقه بتاعته دون توقف وتم اضافه هذا الجزء البسيط فى السطر group1.Add data, data.Text الجزء المظلل باللون الاحمر هى الاضافه البسيطه اللى تمنع التكرار طيب كدا حلو قوى لحد دلوقتى تم تعبئة كل مجموعه المجموعه الاولى بالعمود A والمجموعه الثانيه بالعمود B ازاى بقى ندخل بيانات كل مجموعه فى اعمدة الكمبوبوكس اذن هستخدم الخاصيه With واقفالها بــ End with للاشاره الى الكمبوبوكس المراد تعبئته With Me.ComboBox1 End With هنا ياتى دور الحلقه التكراريه التانيه اللى مهمتها تلف على كل محتويات المجموعه ودخلها فى اعمدة الكمبوبوكس الحلقه هى For Next للمرور على كل عناصر المجموعه من رقم 1 اللى هو اول عنصر بالمجموعه الاولى الى اخر عنصر بالمجموعه الاولى On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With AddItem. يشير الى العمود الاولى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group1 (List(.ListCount - 1, 1. يشير الى العمود الثانى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group2 يبقى تحديد وقت تنفيذ الكود وزى ما اتفقنا قبل كدا ان وقت تنفيذ الكود انت اللى بتحدده ولكن على سبيل المثال فى حدث فتح الفورم Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى1 point
-
السلام عليكم هذا حل بالإكواد اضغط الزر وانتظر قليلا ثم لاحظ النتيجة في العمودين الأصفرين تحياتي متوسط الإقفال لكل شهر.rar1 point
-
1 point
-
1 point
-
السلام عليكم جميعا ورحمته الله وبركاته أخى الفاضل الاستاذ // رضا راغب أهلا وسهلا بك أخى الكريم بين إخوانك المتميزين خلقا وعلما وأدبا وبعد إذن اخى الحبيب // ياسر خليل " أبو البراء " وإثراءا للموضوع إليك هذا الكود وبإذن الله تعالى ستجد حلا للموضوع جزاكم الله خيرا وبارك فيكم Private Const cRunWhat = "Tarhil_Values" Private RunWhen As Double, Arr() As Range, CurIndex As Long Public Sub StartTimer() Dim A As Areas, I As Long If RunWhen > 0 Then MsgBox "The Process Is Already Running" Exit Sub End If Set A = Sheets("Sheet1").Columns("A").SpecialCells(2, 1).Areas ReDim Arr(1 To A.Count) For I = 1 To A.Count Set Arr(I) = A(I).CurrentRegion Next I CurIndex = 0 RunWhen = Now + TimeSerial(0, 0, 10) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=True End Sub Public Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=False RunWhen = -1 MsgBox "Transferring Data Will Be Turned Off" End Sub Private Sub Tarhil_Values() CurIndex = CurIndex + 1 If CurIndex > UBound(Arr) Then StopTimer Exit Sub End If Arr(CurIndex).Copy Sheets("Sheet2").Cells(Arr(CurIndex).Row, "C") Application.CutCopyMode = False RunWhen = Now + TimeSerial(0, 0, 10) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=True End Sub1 point
-
أسعد الله أوقاتكم بكل خير فيما يلي الدرس الثامن من دورة "إكسيل 2013 المستوى المتقدم" بعنوان المصفوفات في اكسيل 2013 الجزء الرابع الدرس الثامن - المصفوفات الجزء الرابع أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html دمتم بخير أخوكم م/نضال الشامي Google+1 point
-
مرفق ملف للتوضيح Dملف باسم داتا يوضع مثلا على قرص كمبيوتر والملف الثاني لا يشترط وضعه في مكان وبالامكان تغير مساق الداتا كما يمكن تغير قيم الادخال وإدخال من خلايا الاكسل او من مربع نص بالفورم Input And Query From DB.zip1 point
-
الاخ الفاضل الاستاذ عبدالله قمت بادراج الكود فى نموذج لا يغلق الا مع البرنامج وشغال كويس واكتملت الفائدة بحمد الله تعالى وبارك الله فيك وفى الاستاذ كابون1 point