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

نجوم المشاركات

  1. الصـقر

    الصـقر

    الخبراء


    • نقاط

      14

    • Posts

      1836


  2. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      11

    • Posts

      13165


  3. عبد العزيز البسكري

    • نقاط

      8

    • Posts

      1352


  4. ياسر العربى

    ياسر العربى

    الخبراء


    • نقاط

      7

    • Posts

      1510


Popular Content

Showing content with the highest reputation on 11/24/15 in مشاركات

  1. مثال رقم 3 :- فى المثال رقم 2 كان الشرح على نفس الصوره السابقه فورم فى مرحلة التصميم وصممت عليه Frame والفريم لا يوجد به اى عناصر تحكم تم تصميمها وكان المثال برقم 2 انى اعمل كود عند فتح الفورم يكون هناك عدد 10 صفوف من العناصر كل صف به ليبل وتكست بوكس وكمبوبوكس المثال بتاعنا اليومعايز اعرف ازاى اضيف عناصر تحكم اثناء فتح الفورم من شيت اكسيل وعدد الصفوف بالشيت غير معروف عددها فى زياده او نقصان شاهد الصوره هتعرف اكتر المثال بتاعنا بكل بساطه نفس الكود اللى بالمثال 2 مع تعديلات فنيه بسيطه جدا دا كان الكود اللى بالمثال 2 Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" & i End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub ايه المطلوب تعديله بالكود لكى يتناسب مع المطلوب بتاعنا رفع الخلايا من الشيت الى الفريم المثال كان على ان عدد الصفوف 10 لذالك استخدمنا الحلقه For next كالتالى For i = 1 To 10 فدلوقتى انا عايز اجيب الخلايا بالشيت رقم 1 النطاق من A2 الى اخر صف هيكون به اخر طالب اذن بداية الحلقه هى اول صف بالجدول وهو الخليه A2 ورقم الصف لها هو 2 اذن الحلقه هتبدأ من رقم 2 الى ؟ الى اخر صف به بيانات فى العمود A اذن لازم احدد اخر صف به بيانات من خلال السطر التالى واحنا شرحناه قبل كدا lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row عملت متغير واسمه Lr وتقدر تسميه اى اسم كيفما شئت وقلت ان المتغير Lr يساوى كتبت اسم الشيت المراد العمل عليه واستخدمت Cells لتحديد عدد الخلايا الممتلئه بالبيانات فى العمود 1 كدا انا عرفت الحلقه من اين تبدأ واين تنتهى ( تبدأ من الصف 2 الى اخر صف به بيانات ) For i = 2 To lr شاهد الكود بعد تعديل الحلقه For Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row Top = 5 For i = 2 To lr With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a .Text = Sheet1.Cells(i, 3).Text End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = Sheet1.Cells(i, 1).Text End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub اللى مركز معايا هيلاقى 1- تم تعديل بداية ونهاية الحلقه For 2- فى سطر تم اضافته فى خصائص كل عنصر فى عنصر الكمبوبوكس تم اضافه السطر التالى .Text = Sheet1.Cells(i, 3).Text قيمة الكمبوبوكس هى كتبت اسم الشيت وهو بمثالنا الشيت 1 ثم الخلية المطلوبه Cells عباره عن (رقم العمود, رقم الصف)Cells ( Cells( i , 3 i هنا هى رقم الصف اللى هيتغير كل مره بالحلقه For والعمود هو رقم 3 الخاص بالحاله --------------------------------- فى عنصر التكست بوكستم اضافه السطر التالى .Text = Sheet1.Cells(i, 2).Text نفس الكمبوبوكس ولكن تم تغيير رقم العمود هو 2 الخاص بالدرجه ---------------------------------- فى عنصر الليبل تم اضافه السطر التالى .Caption = Sheet1.Cells(i, 1).Text نفس الكمبوبوكس والتكست بوكس ولكن تم تغيير رقم العمود هو 1 الخاص باسم الطالب ----------------------------------------------------------------------------------------------------------------------- ملحوظه اخيره لمن يريد درجة الاحترافيه فى الكود لما كنا بنعمل خصائص العنصر كان الخاصيه Left & Top & Width& Height لكل عنصر كان بيتم كتابتهم بالشكل التالى كلا منهم على حد فى سطر مختلف على سبيل المثال خصائص التكست بوكس With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With ممكن اكتب الاربع خصائص فى سطر واحد من خلال Move القاعدة الخاصه بــ Move Move Left, Top, Width, Height. ويكون شكل الكود كالتالى بالخصائص With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Move 180, Top, 150, 40 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With تم استبدال الاربع صفوف بسطر واحد من خلال Move -------------------------------------------------------------------------------------------------------- جرب الكود بنفسك هتثبت المعلومه اكتر الى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد ان شاء الله هيكون عن كيفية التحكم فى العناصر الموجوده داخل الفريم سوء كانت مصممه اثناء عملية التصميم او تم انشائها بكود انتظرونا تقبلوا تحياتى
    3 points
  2. كلمة شكر وعرفان الى صاحب القلب الطيب الى صاحب النفس الابيه الى صحاب الابتسامه الفريده استاذى الفاضل السيد المهندس المحترم محمد طاهر مدير جامعه اوفيسنا اتقدم لحضرتك بخالص الشكر والتقدير على تثبيتكم لموضوع سلسلة علمنى كيف اصطاد شروحات الفورم ان قلت شكرى فشكرى لن يوفيكم حقا سعيتم للخير فكان جزاء السعى من رب العالمين لكم مشكورا أسال الله تعالى ان تكون هذه الشروحات علما نافعا ينتفع به
    2 points
  3. السّلام عليكم و رحمة الله و بركاته هل فكّرْتَ يومًا أخي الكريم .. في إيقاف التّواصل و ترك الجهاز تحت الضغط لِلَحظات .. من خلال اليوزرفورم و أنتَ تشتغل عليه .. هل فكّرْتَ يومًا أخي الفاضل .. و قد اضطررتَ لعمل ريسْتارْت و إعادة تشغيل جهازك .. في القيام بذلك فقط من خلال اليوزرفورم .. هل فكّرْتَ أخي الغالي .. في إطفاء جهازك نهائيًّا بزر أمر فقط من خلال اليوزرفورم .. هل فكّرْتَ أخي العزيز .. أنْ تضبطَ توقيت نظام الويندوز أو ضبط بعض الاعدادات الاقليمية .. فقط من خلال اليوزرفورم .. تفضّلْ سيّدي المحترم .. و جرّبْ فضلاً لا أمرًا ذلك بنفسك من خلال الملف رقم 1 المرفق أدناه .. و إذا كنتَ لستَ من هُواة اليوزرفورم و أردتَ القيام بذلك من خلال شيت الاكسل .. عليكَ فقط بتقسيمِ فَيْلق " الباشْمارْكة " من داخل اليوزرفورم إلى كتائب صغيرة من الموديلات و ربطها بأزرار أمر .. تمامًا مثلما هو موضّح بالملف رقم 2 المرفق أدناه .. فائق إحتراماتي عبد العزيز البسكري الملف 1.rar الملف 2.rar
    2 points
  4. السلام عليكم السطر التالي cel.SpecialCells(xlCellTypeConstants).ClearContents استبدله بهذا cel.Delete Shift:=xlUp
    2 points
  5. السّلام عليكم و رحمة الله و بركاته بسم الله الرّحمن الرّحيم وَمَنْ يَتَّقِ اللَّهَ يَجْعَلْ لَهُ مَخْرَجًا وَيَرْزُقْهُ مِنْ حَيْثُ لا يَحْتَسِبُ صدق الله العظيم بارك الله فيك أخي الغالي و أستاذي القدير "حسام " فعلاً الواحد المتعلّم منّا يجد أكثر من ضالّته مع سلسلة دروسك تصدّق بالله .. موضوع شاغلني أكثر من 10 أشهر ..بحثت هنا و هناك و هنالك ..حتّى فقدتُ الأمل في العثور على النتيجة و على المفهوم الصّحيح ..و بقي الموضوع " اللّغز" عالقًا بذهني .. و جاء الفرج أخيرًا بفضل الله ثم بفضلك أخي العزيز " الصّقر " ..من خلال سلسلة دروسك .. الحمد لله أوّلاً و أخيرًا هذا الموضوع العفريت الذي سكن دماغي هو .. عند رؤيتي لأحد ملفّات الأستاذ العلامة عبد الله باقشير ..أفتح اليوزرفورم من خلال محرّر الأكواد فلا أجد فيها شيء ..لا فريم و لا تاكسات بوكس ولا .. و لا .. أقوم بتشغيل الملف فتظهر لي حاجات و حاجات .. مرّة أخرى : الحمد لله أوّلا و أخيرا بارك الله فيك .. جزاك الله خيرًا و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي
    2 points
  6. السّلام عليكم و رحمة الله و بركاته ألف شكر أستاذي القدير " ياسر العربي " على الرّوابط و العناوين الممتازة و المثمرة و المفيدة الدّال على الخير كفاعله .. و أنتَ جمعْتَهما الاثنين معًا .. تدلّ دومًا على فعل الخير و تعمله بارك الله فيك .. جزاك الله خيرًا و زادها بميزان حسناتك وددت مشاركتك بقائمة عناوينك المميّزة بإضافة ملفًا آخرًا بعدّة أسماء للمستخدمين .. كلمات المرور على التّوالي :111-222-333-444-555 فائق إحتراماتي و إعجاباتي أسماء عدة مستخدمين.rar
    2 points
  7. السلام عليكم ورحمة الله وبركاته إخوتي الكرام .أخي الصقر .أخي عبد العزيز اللذين أكن لهما كل محبة وتقدير لفتة كريمة من إخوة كرام ..عندما نشكر أستاذنا الجليل محمد طاهر عرفاناً منا بالجميل الذي قدمه ويقدمه وهذا التفاني في العطاء.. حيث جمع شمل الكثيرين من التواقين لخدمة الناس بما آتاهم الله من فضله من العلوم والآداب وخصوصاً في مجال البرمجيات ... فالحمد لله أولا وأخيرا ثم الشكر الجزيل له لأنه يبقي أثراً طويل المدى يستقطب الكفاءات. ولا أنسى بجزيل الشكر لمن سانده وساعده ووقف معه ولا يزال من الرواد الذين يبلّغون العلم النافع ليبلغوا بذلك شأنا عظيما في قلوب محبيهم وتتردد دروسهم وأفكارهم عبر الأفق والزمن للأجيال المتلاحقة ليصبح تراثا عظيما في هذا الوطن الكبير والسلام عليكم
    2 points
  8. بسم الله الرحمن الرحيم اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل ولكن اولا نقوم بمراجعه درس اعمل شاشة دخول برنامجك بنفسك وسيبك من التقليد http://www.officena.net/ib/topic/64832-اعمل-شاشة-دخول-برنامجك-بنفسك-وسيبك-من-التقليد/ بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا الأساسيات الشاشة الرئيسية الصفحات الأخرى وأخيرا صفحة معلومات الدخول والصلاحيات ودي أسماء الصفحات داخل الشيتات وبرمجيا نقوم بتصميم نفس الصفحات السابقة أظن سهلة العملية لحد دلوقتي حان دور الاكواد نبدأ بالاكواد السهلة في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي صفحة ادخال البيانات في زر الرجوع Sub yasser1() index.Activate sheet1.Visible = xlSheetVeryHidden End Sub السطر الاول للرجوع للصفحة الرئيسية السطر الثاني لاخفاء صفحة ادخال البيانات وهي شيت1 وتكرر في الصفحات المتبقية صفحة الاستعلام Sub yasser2() index.Activate sheet2.Visible = xlSheetVeryHidden End Sub صفحة قاعدة البيانات Sub yasser3() index.Activate sheet3.Visible = xlSheetVeryHidden End Sub صفحة المستخدمون users Sub mohamed1() index.Select users.Visible = xlSheetVeryHidden End Sub وقبل ان نترك صفحة اليوزرز نضع هذه المعادلات =IF(J2="";"";VLOOKUP(J2;A2:E8;3;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;4;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;5;FALSE)) هذه الدوال تجلب بيانات المستخدم من جدول المستخدمين ومنها نقوم بالتحكم في صلاحياته الآن حان دور الصفحة الرئيسية نضع في اول زر وهو زر ادخال البيانات الكود التالي Sub aseel1() If users.Range("k2") = "yes" Then Application.ScreenUpdating = False sheet1.Visible = xlSheetVisible sheet1.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثانية صفحة الاستعلام Sub aseel2() If users.Range("L2") = "yes" Then Application.ScreenUpdating = False sheet2.Visible = xlSheetVisible sheet2.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثالثة صفحة قاعدة البيانات Sub aseel3() If users.Range("m2") = "yes" Then Application.ScreenUpdating = False sheet3.Visible = xlSheetVisible sheet3.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الرابعة صفحة صلاحيات اليوزرز وهنا سنغير الكود سنعطى لهذه الصفحة كلمة مرور خاصة غير باقي الصفحات Sub mohamed() Dim x x = InputBox("يرجى ادخال كلمة المرور.", "Password Required") If x = "123" Then users.Visible = xlSheetVisible users.Select Else MsgBox "كلمة المرور خطأ يرجى اعداة المحاولة" End If End Sub اكواد الصفحات تعتمد علي اول سطر يقوم بمقارنة الخلية الخاصة بالصفحة اذا كانت بها كلمة yes فيسمح بالدخول اما غير ذلك لا يمكن الدخول والجزء الثان من الكود يقوم باظهار الصفحة عند تحقق الشرط والذهاب اليها ينقصنا سطر صغير لاتمام الموضوع نسخ اسم المستخدم عند الدخول الى الخلية المحددة ليتم جلب بيانته عن طريق اسمه وتتم كالاتي يتم وضع الكود في حدث زر الدخول users.Range("j2") = ComboBox1.Value وبكدا يكون انتهى الدرس تقبلوا تحياتي ياسر العربي لو مكسلين تطبقوا احط ليكم مرفق وخلاص وادي مرفق الشرح PDF صلاحيات.rar
    2 points
  9. مهندس ياسر فتحى جزاك الله كل خير استاذ ياسر العربى منور الدنيا كله نجم النجوم معلمى استاذ ياسر خليل كدة الموضوع هبيقى زى السيلفى بس لعشاق الاكسل وكل واحد يكتب اسم واى حاجة عاوز بالدالة دى Book1.rar
    2 points
  10. أخي الكريم أبو يوسف لم يتم الرد للآن وتأكيد الطلب (ورغم أنني من أنصار عدم تقديم المساعدة إلا إذا توافر الشرح الكافي للطلب بالتفصيل ولكن ما باليد حيلة) سأقوم بطرح ما قام به أخونا الحبيب مختار عن طريق الأكواد بعيداً عن معادلات الصفيف .. الآن تم دمج الطلبات بشكل مبدئي ..الجزء الأول تحدد الملفات المراد تجميعها ثم يتم تجميعها كل ملف أو مصنف في ورقة عمل ، ثم الجزء الثاني يتم استخراج مكاتب التربية الغير مكررة في العمود M وفي العمود المقابل له عدد هذه المكاتب ... إذا كان للطلب بقية فأفضل أن يكون في كود منفصل .. حتى لا نتوه بين أسطر الأكواد .. إليك الكود بالشكل النهائي له Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long, P As Long Dim Rng As Range, ColFound Dim Data As Variant Dim Obj As Object On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit ColFound = Application.Match("*مكتب التربية*", .Rows(1), 0) If IsNumeric(ColFound) Then With .Columns("M:N") .ClearContents .Borders.LineStyle = xlNone .Interior.Color = xlNone End With .Range("M2:N2") = Array("مكتب التربية", "العدد") Set Rng = .Range(.Cells(2, ColFound), .Cells(.Cells(Rows.Count, ColFound).End(xlUp).Row, ColFound)) Set Obj = CreateObject("scripting.dictionary") Data = Rng For P = 1 To UBound(Data) Obj(Data(P, 1) & "") = "" Next .Range("M3:M1000").ClearContents .Range("M3").Resize(Obj.Count, 1) = Application.Transpose(Obj.keys) With .Range("N3:N" & .Cells(Rows.Count, "M").End(xlUp).Row) .Formula = "=COUNTIF(" & Rng.Address & ",M3)" .Value = .Value End With With .Range("M2").CurrentRegion .Range("A1:B1").Interior.Color = vbYellow .Borders.Weight = xlThin .BorderAround Weight:=xlThick .Columns.AutoFit End With End If End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V2.rar
    2 points
  11. السلام عليكم ورحمة الله وبركاته أستاذ جديد ودرس مفيد ...نكن كل احترامنا وتقديرنا لأساتذتنا الذين ينقبون عن النفائس من أمهات الكتب يبحثون بين السطور ليغرسوها في الصدور نبتات رائعة الجمال يسقونها بمداد المحبة التي تغشى القلوب .. أخي الحبيب الصقر برعت وواظبت ببرنامج شرح الفورم .. جزاك الله خيرا أخي الحبيب ياسر برعت كذلك بشرح صلاحيات الدخول وسندخل معك في رحاب دروسك وأنت مضياف ....ماذا بعد الدخول؟ بمعنى ننتظر دروسا أخرى هامة فوطن نفسك على العطاء . لا تؤاخذني على خطأي لأنه ليس على المريض حرج تقبل تحياتي والسلام عليكم.
    2 points
  12. اخى الحبيب والغالى ياسر والله موضوع Pdf ده بقى مهمة اللى لازمه الشرح انا والله ماعندى نسخه من الشرح انا بشرح مباشرة على الموقع فى مره النور قطع بدون حفظ ورجعت عملت اعاده للشرح مره اخرة كله والله وعلى قلبى زى العسل لان اللى عايز يعمل شئ وعند اصرار هيعمله وانا عايز اقدم شئ واللى عايز يتعلم هيعرف ازاى يحتفظ بالدرس ويستفيد منه دا لو كان لازمه لكن اوعدك ان شاء الله بعد الانتهاء من الشروحات نعمله كتاب الكترونى بأذن الله وطبعا ده مش هيكون لوحدى هيكون بهمتكم معانا تقبل تحياتى
    2 points
  13. السلام عليكم ورحمة الله وبركاته اخواني الاعزاء هنا ملف كامل لكيفية استخدام الUserForm وكيفية التعامل معه وبجميع أدواته المستخدمة مع شرح الخصائص المتعلقة به وبادواته كذلك تم شرح الاكواد الخاصة به وبادواته وتم استخدام الصور والامثلة العملية في الشرح وبصورة ميسرة وبسيطة حتى يتم استيعابها بالصورة المطلوبة وتم تقسيم العمل الى ستة ملفات وبصورة تسلسلية اخوكم عماد الحسامي الدرس الأول UserForm.rar الدرس الثاني.rar الدرس الثالث textbox.rar الدرس الرابع.rar الدرس الخامس.rar الدرس السادس.rar الدروس السته مجمعه.zip
    1 point
  14.  خواطر إكسيلية أساتذتي الكرام إخوتي الأحبة السلام عليكم ورحمة الله وبركاته: بدا لي أن أكتب موضوعاً لا يقف حكراً على أحد – بل بإمكان كلٍّ منا أن يجود بما يخطر له من مواضيع الإكسيل التي يريد أن يفيد بها - وهنا أنطلق من كلمة إكسل التي تعني البراعة أو كما يحلو لنا أن نسميها في بلدي المكلوم "برنامج الجداول الإلكترونية" : ولذلك فإنني سأنطلق من خاطرة أولى تتحدث عن بعض اختصارات برنامج الإكسيل التي نصادفها بشكل يومي كما يلي: اختصارات لوحة المفاتيح في الإكسيل: إظهار(عرض) الصيغ في الخلايا بدلاً من نتائجها المحتسبة CTRL + ~ سابقة أثر(الخلايا التي أثرت في قيمة الخلية الحالية CTRL + [ تاريخ اليوم CTRL+ ; اختيار(تحديد كل) الجدول الحالي CTRL+ * الوقت الحالي CTRL+SHIFT+ ; نسخ من الخلية المجاورة بالأعلى CTRL+ ' هذا ما استطعت عرضه في عجالة من أمري وسيتبع إن شاء الله تعالى بمواضيع أخرى والسلام عليكم خواطر إكسيلية.rar
    1 point
  15. أثناء مروري بأحد المواضيع في منتدانا الطيب ومن خلال المشاركات كان لأخي الحبيب أبو أحمد - عبدالله المجرب ، تعليق وطلب لشرح تركيب جملة SQL ، .... http://www.officena....=0 ومنها راودتني نفسي أن أجهز سلسلة لشرح ما يفتح عليّ ربي عن SQL ، وقد باشرت بالعودة لمراجعي ومواقعي المعتمدة ، وما لدي من ملاحظات و ( خرابيش ) في كشكولي ، وعقدت العزم ووجهت النية ... لوجه الله تعالى ، لا أبتغي منكم أجراً ولا (مديحاً) ، إن أجريَ إلا على الله ، وهو حسبي ، وهو المستعان . ورغم أن لغتي الإنجليزية ممتازة (أدعي) ، إلا أنني قررت الاستعانة بإبني البكر آدم في بعض الترجمات الفنية ، تخفيفاً على نفسي ، وتكثيفاً للجهد ، فأعينونا بالدعاء. راجياً من المولى عزّ وجلّ أن يعيننا على الخير ، وهو المستعان بحق وجزاؤه المرتجى ... والله من وراء القصد ... وهو حسبي ........................
    1 point
  16. السلام عليكم هل من طريقة او كود لمعاينة تقرير في الأكسس على هيئة pdf دون المطالبة بحفظ ملف pdf وشكراً
    1 point
  17. لقد كررت عليك الفكرة في ثلاثة مشاركات مختلفة .. الحمد لله أن انتهيت من المشكلة الأولى التي لم تكن مشكلة في الأساس !!!!! غير الخاصية المسماة PasswordChar الخاصة بـ TextBox2 ضع بها القيمة * لتظهر لك كلمة السر على شكل نجوم ..............
    1 point
  18. مش عارف فين المشكلة الملف شغال زي الفل وبيرحل وكل حاجه انا شغال اوفيس 2010
    1 point
  19. أخى ياسر أحبك الله الذى أحببتنى فيه نعم هناك العديد والعديد من الموضوعات المتعلقه بشاشات الدخول وكلمات المرور وقد وقع إختيارى على تلك الشاشة التى يمكن تغييرها بعد ذلك ولكن الاهم منها الان هو تظبيط بعض الامور الطفيفية المتعلقة بالبرنامج سأنوه عنها تباعا وخاصة أننى اريد بعد ذلك إضافة فوروم أخر لادخال البيانات والحذف والاضافة والتعديل والاستعلام ومن ثم سيتم بإذن الله رفع البرنامج بصورنه النهائية بكافة أكواده ومعادلاته والتى تعد من المعادلات المعقدة لتتم الفائدة لجميع الاخوة بالمنتدى وليكن اولى هذه التظبيطات تصويب خلل عدم إستدعاء الماكرو كما أشرت عاليه شاكر فضلك **** تقبل وافر تقديرى واحترامى
    1 point
  20. أخي الحبيب زيزو أضحك الله سنك ..كيف يقلب الورقة ؟؟! خايف بدل ما يقلب الورقة يقلب دماغة عشان يشوف الطباعة بالعكس
    1 point
  21. أخي الكريم أحمد ولا محمد فؤاد الحمد لله أن تم المطلوب على خير .. هذا بفضل الله ثم بفضل الله أن يسر لك شخصاً يقوم بذلك الأمر فاحمد الله أولاً وأخيراً بالنسبة لطلبك الثاني غريب شوية ومش منطقي ..هتفرق ايه الطباعة من الآخر للأول أو من الأول للآخر .مجرد تساؤل عموماً جرب التعديل في هذا السطر ..قم باستبدال السطر التالي For I = (LBound(Arr) + 1) To UBound(Arr) بهذا السطر For I = UBound(Arr) To (LBound(Arr) + 1) Step -1
    1 point
  22. الأخ الفاضل omarahmed1424 إن احتلت لي المشكلة وانتهيت من البرنامج فلن أبخل عليك وأبشر بما طلبت يا الغالي إن شاء الله
    1 point
  23. اخى الحبيب زيزو شاكر لك مرورك دائما سباق بالخير تقبل تحياتى
    1 point
  24. السلام عليكم لم تسن قوانين المنتدى الا لمصلحة الجميع للسائل والمعلم ولمن يأتي بعدهم الاولى والافضل ان تكون كل مسألة في عنوان وموضوع جديد يخصها تعدد العناوين حتى لو كان ضمن موضوع واحد هو علامة صحية نجني ثمارها مستقبلا عند عملية البحث سأغلق الموضوع من اجلك
    1 point
  25. التنويه عن نزول درس جديد من سلسلة علمنى كيف اصطاد الفورم على الرابط التالى http://www.officena.net/ib/topic/64037-سلسلة-علمنى-كيف-اصطاد-الفورم-forms/?do=findComment&comment=423854 تقبلوا تحياتى
    1 point
  26. السّلام عليكم و رحمة الله و بركاته بعد اذن اخي الغالي عبد العزيز تفضل المواضيع التالية هذا الموضوع به مثال رائع للاخ العزيز الغالي عبد العزيز البسكري ولي مثال ايضا http://www.officena.net/ib/topic/64758-طلب-عمل-شاشة-دخول-بكلمة-المرور/ وهذا موضوع شرح كيفية عمل شاشة دخول بباسورد واسم مستخدم وباسوورد http://www.officena.net/ib/topic/64832-اعمل-شاشة-دخول-برنامجك-بنفسك-وسيبك-من-التقليد/ وهذا شرح لطريقة عمل شاشة دخول بصلاحيات كمان http://www.officena.net/ib/topic/65092-شرح-عمل-صلاحيات-للدخول-على-شيتات-داخل-ملف-الاكسيل/ اظن كدا تمام
    1 point
  27. السلام عليكم شاهد المرفق Book2_Arb.rar
    1 point
  28. السلام عليكم ورحمة الله وبركاته تحياتى وتقديرى لجميع أحبائى أعضاء وأساتذة هذا الصرح العلمى الهائل أدخل المعادلة الأتية بأى خلية داخل الإكسيل وشاهد النتيجة بنفسك تحياتى =CHAR(225)&CHAR(199)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(199)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(227)&CHAR(205)&CHAR(227)&CHAR(207)&CHAR(32)&CHAR(209)&CHAR(211)&CHAR(230)&CHAR(225)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)
    1 point
  29. السلام عليكم سوف نتكلم عن الربط والاستيراد للجداول الربط يمكن ربط الجداول في حالة نقل قاعدة بيان الاكسس من مكان الى اخر و يمكن عمل ذلك بطريقة الكود (وضع كود لزر في نموذج يقوم بفتح معالج ربط الجداول ) من خلال الاكسس اوبالطريقه اليدويه اما استيراد الجداول نعمله عند ما تقتضي حاجه ما الى ذلك لان عند الاستيراد تصبح الجداول جداول الاكسس كما في الفديو https://www.youtube.com/watch?v=6FgCNQHqR1k بالتوفيق
    1 point
  30. السلام عليكم ورحمة الله السيد الفاضل علي العيدروس حفظة الله دائما مبدع ومتقن وبإسلوب هادي و راقي جدا واعمالك تشهد لك منذو باع طويل في هذا الصرح. بارك الله فيك وجزاك الله خير نتمنى لك التوفيق في حياتك العملية والدينية
    1 point
  31. تسلملي حبيبي ابو انس كل الشكر والتقدير لمروركم الكريم
    1 point
  32. قسما بالله قسما بالله انت ملكش حل ربنا يجعلو فى ميزان حسناتك انت متعرفش ساعدتنى اد ايه الموضوع الى فات محلش الطلب بتاعى اسف انى كررت الموضوع اخر طلب بس عايزو يبدا طباعه من الاخر للاول يعنى لو الشيت فيه 11 صفحه يبدا بالورقه رقم 11 من الاخر للاول
    1 point
  33. اخي العزيز في البداية قلت ان رقم القيد لا يتكرر وفي نهاية كلامك يتبين ان رقم القيد يمكن ان يتكرر لكن حسب الحالة او انك تقصد ان هناك ثلاثة حقول حقل لرقم القيد وهو لا يتكرر لجميع الحالات وحقل اخر شبيه بالتسلسل ولكن لكل الحالة وهو الذي يكون ترقيمه ترقيما اليا وحقل ثالث للحالات
    1 point
  34. أخي الكريم ياسر العربي ايه علاقة ملفك الجميل والرائع بالموضوع .. صحيح الملف جميل وفكرته جميلة .. لكن ملوش علاقة بالموضوع دي نقطة نقطة تانية (وشكلي كدا هجيب لك النقطة بنقدي) ..اللي يحضر عفريت يصرفه يعني دلوقتي اللي هيفتح ملفك ساعتها هيتم إضافة قائمة مخصصة لديه في أي مصنف يفتحه يعني بقا عفريت ياسر العربي موجود في كل المصنفات ..سواء تحتوي على الكود أو لا ... يبقا اللي يحضر عفريت يصرفه ..يعني تيجي زي الشاطر في حدث إغلاق المصنف وقبل الإغلاق تضع كود يحذف القائمة المخصصة ... لو تحب أساعدك قولي
    1 point
  35. بارك الله فيك اخى ياسر
    1 point
  36. حته نص كم كدا بقي yasser.rar معلش بقي هي هتطبق علي الاكسيل عموما يعني حد يطول اسمي يبقي عنده لو حد عاوز يلغيها ماشي
    1 point
  37. وعليكم السلام أخي طارق عملت وحدة نمطية fget_User_ID : Option Compare Database Public u_ID As Integer ' Function get_User_ID() get_User_ID = u_ID End Function . في نموذج دخول المستخدمين ، ارسلت قيمة u_ID الى الوحدة النمطية اعلاه: Private Sub Command5_Click() If [n2] = [كلمة السر] Then 'assign this value to a Global variable in module fget_User_ID u_ID = Me.iduser DoCmd.OpenForm "واجهة البرنامج", acNormal [Forms]![واجهة البرنامج]![n1] = [Forms]![دخول المستخدمين]![الاسم الكامل] DoCmd.Close acForm, "دخول المستخدمين" Else ms$ = "كلمة السر غير مطابقة" ti$ = "كلمة السر خطأ" re = MsgBox(ms$, 0, ti$) End If End Sub . فمن الآن وصاعدا ، كلما اردنا قيمة createuser ، فما علينا إلا ان ننادي الوحدة النمطية الاولى ، لهذا وفي نموذج الادخال barcodeir ، اصبح حقل createuser هكذا: . وفي حدث الحقل barcode ، الحدث On Lost Focus ، استدعيت قيمة createuser من الوحدة النمطية fget_Used_ID ، هكذا: Private Sub barcode_LostFocus() 'only split is nfous is empty If Len(Me.nfousi & "") <> 0 Then Exit Sub Dim x() As String Dim p As Integer If Me.barcode <> "" Then 'get the userID Me.createuser = get_User_ID() x1 = Replace(Me.barcode, "*", "") Debug.Print x1 x = Split(x1, "-") Debug.Print x(2) Me.nfousi = DLookup("[NoufousName]", "NoufousTable", "[Field]='" & x(0) & "'") ' Me.nfous_ID = DLookup("[NoufousID]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.irsalieh = x(2) Me.createdate = Date Me.[a1] = x(1) ' Me.[000000] = x(2) ' Me.[000] = x(3) Me.[101] = x(3) End If End Sub . جعفر 276.tito.accdb.zip
    1 point
  38. السلام عليكم ورحمة الله وبركاته اخى الكريم اعتقد ان الفكرة فى تعبئه الفاتورة بشكل سريع .. دعنا نتخيل انك كتبت فى احد الخلايا احد حروف البحث وبعدها ظهر الفورم عندها ستختار احد الاصناف بناء على حرف البحث الموجود بالخليه .. بعدها سيتم غلق الفوره لكتابه حرف جديد بالخليه يعبر عن الصنف الاخر المراد ادخالة وهكذا .. اسلوب معقد وبطئ ... اما وعن فكرة الملف كما طلبها الاخ محمد عبد السلام فتتسم بالسرعه حيث يوجد تكست بوكس تغير فيه حرف البحث فى كل مرة وتختار الاصناف دون الحاجه الى غلق الفورم وفتحه ... تقبل تحياتى
    1 point
  39. Sub PrintSpecificPagesInActiveSheet() Dim Arr, SH As Worksheet, Rng As Range, Cell As Range, I As Long Set SH = ActiveSheet With SH ReDim Arr(0 To .HPageBreaks.Count + 1) If Len(.PageSetup.PrintTitleRows) Then Set Rng = .Range(.PageSetup.PrintTitleRows) Arr(0) = Rng.Rows(Rng.Row + Rng.Rows.Count).Row Else Arr(0) = 1 End If For I = 1 To .HPageBreaks.Count Arr(I) = .HPageBreaks(I).Location.Row Next I Arr(UBound(Arr)) = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1 For I = (LBound(Arr) + 1) To UBound(Arr) Set Rng = Intersect(.Rows(Arr(I - 1) & ":" & (Arr(I) - 1)), .UsedRange, .Columns("G")) If Not Rng Is Nothing Then Debug.Print Rng.Address For Each Cell In Rng If Cell.Value > 0 Then .PrintOut From:=I, To:=I Exit For End If Next Cell End If Next I End With End Sub أخي الكريم محمد فؤاد أعتقد أن الموضوع قد تم طرحه من قبل من فترة .. وها أنت تعيد طرحه مرة أخرى (مخالفة لتوجيهات المنتدى) عموماً لا عليك .. جرب الكود التالي عله يفي بالغرض Print Specific Pages On Condition Column G Has Value YasserKhalil.rar
    1 point
  40. السّلام عليكم و رحمة الله و بركاته دمتم أساتذنا الأفاضل المحترمين .. الصّقر محمّد طاهر و كل من ساهم و يساهم من بعيد أو من قريب في بناء هذا الصّرح التّعليمي الكبير ..جامعة "أوفيسنا" دمتم جميعًا سنْدًا متينًا لنا .. في سبيل إنارة دربنا و منهجنا التّعليمي الجاد و المثمر و المفيد بارك الله فيكم أجمعين .. بارك الله فيكم و لكم .. بارك الله في أولادكم و عائلاتكم و صحّتكم و أوقاتكم جزاكم الله خيرًا لما تبذلونه أساتذتنا الأفاضل .. فائق إحتراماتي
    1 point
  41. جرب تضع الكود التالي في حدث المصنف Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) '[Save As] يقوم الكود بمنع خاصية الحفظ باسم '------------------------------------------ If SaveAsUI Then MsgBox "I have disabled the 'Save As' function." _ & Chr(10) & "Only 'Save' will work.", vbInformation, "Save As Disabled" Cancel = True End If End Sub
    1 point
  42. الطريقه الٍسادسه :- تعبئه الكمبوبوكس باستخدام الحلقه التكراريه For Each (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر شاهد الصوره مثال :- مطلوب تعبئة الكمبوبوكس 1 بالبيانات المظلله باللون الاخضر هنعمل الكود التالى With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With نشرح الكود ونمشى وحده وحده ونشوف ازى تم كتابته بالسطر الاول استخدمنا With ComboBox1 يعنى بنقول للكود الشغل بتاعنا هيكون مع الكمبوبوكس 1 ( الكمبوبوكس المطلوب تعبئته ) وطبعا طالما فتحنا With يبقى لازم نقفلها بــ End With زى كدا With ComboBox1 End With السطر التانى استخدمنا الحلقه التكرارية For Each وسميت الحلقه بأسم Data (وممكن تسميها اى اسم او احرف اخرى كما يحلو لك ) Data موجوده فى اى نطاق قلتله موجود فى النطاق من A2 الى اخر خلية بها بيانات فى العمود A ( وطبعا عرفنا ازاى قبل كدا نعرف اخر صف به بيانات فى اى شيت وفى اى عمود ) وكدا الحلقه التكرارية هتبدأ تلف على كل خليه فى النطاق المذكور بدأ من الخلية A2 وطبعا لازم نقفل الحلقه بـ Next For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next فلحلقه لما تبدأ هيكون Data = A2 Next الكود هيروح للخليه اللى بعدها Data = A3 Next الكود هيروح للخليه اللى بعدها Data = A4 Next الكود هيروح للخليه اللى بعدها وهكذا حتى يصل الى اخر خليه بها بيانات بالعمود وهى A11 كدا الحلقه بتلف بدون فائده او بالادق بدون مهمه تنفذها مجرد فقط انه بيلف انا عايز استفيد من الفه بتاعته دى فنعمل ايه هقوله وانت بتلف اعمل حاجتين خلى Data اللى هى فى اول لفه هتكون قيمتها A2 دخلها فى العمود الاول للكمبوبوكس ( ملحوظه العمود الاول فى الكمبوبوكس بيكون رقمه 0 والخليه المجاورة لها بالعمود B اللى هى B2 دخلها بالعمود الثانى بالكمبوبوكس ( ملحوظه العمود الثانى بيكون رقمه 1 ) وهكذا وهو بيمر على كل خليه بالنطاق هيعمل كدا .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value ترتيب الاعمده فى الكمبوبوكس بيدأ من 0 وكذالك ترتيب الصفوف بيدأ من 0 AddItem هى العمود رقم 0 فى الكمبوبوكس والعمود ده يساوى Data اللى هى كل خليه هتمر فيها الحلقه اللى هى اسماء العملاء بالعمود A والعمود رقم 1 فى الكمبوبوكس هو (List(.ListCount - 1, 1. هيظهر فيه كود العميل اللى بالعمود B (رقم العمود , صفوف الكمبوبوكس)List. صفوف الكمبوبوكس بتبدأ من 0 زى ما قلت علشان كدا قلت ان صفوف الكمبوبوكس - 1 **** ListCount - 1. طيب العمود رقم 1 عايزين نظهر فيه الكود اللى بالعمود B بالشيت فنعمل ايه Data.Offset(0, 1).Value= هنا استخدمنا الداله offset فى اول لفه للحلقه هيكون Data = A2 فأنا بقوله انتقل من A2 بمقدار صف 0 والعمود 1 ( يعنى ايه صف 0 يعنى نفس الصف والعمود واحد يعنى تحرك وروح للعمود B اخر شئ طبعا الكود ده وقت تنفيذه انت اللى بتحدده ولكن على سبيل المثال انا عايز اكتبه فى حدث تشغيل الفورم فيكون كالتالى Private Sub UserForm_Initialize() With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس الطريقه القادمه هنعرف ازاى نجلب البيانات بالكمبوبوكس دون تكرار انتظرونا تقبلوا تحياتى
    1 point
  43. الطريقه الرابعه :- استخدام لغة البرمجه هى بنظرى من اهم الطرق واسهلها وهى تكون من خلال البرمجه فقط ولا يمكن تنفيذها من شاشة الخصائص فى مرحله التصميم شاهد الصوره التالية هتعرف ما هى الطريقه الكود هو بشكل مكبر عباره عن سطر واحد فقط ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row تعالو نفصص كل كلمة فى هذا السطر ونعرف ازاى نكتبه comboBox هو اسم الكمبوبوكس المراد تعبئته بالبيانات . تكتب من خلال جعل الكيبورد انجلش ثم نضغط على حرف ز بالعربى RowSource هى الخاصيه المسئوله عن تعبئة الكمبوبوكس بالبيانات = نكتب علامه = " نفتح قوس تنصيص " ويكتب من خلال شفت+حرف ط بالعربى Sheet1!a2 وهى اول خلية بالجدول المراد عرض بياناته فى الكمبوبوكس (ونلاحظ اننا كتبنا اسم الشيت متبوع بعلامة تعجب ! ثم اسم الخلية) : تعنى الى b اسم اخر عمود بالجدول " قفل قوس التنصيص طالما فتحنا قوس اذن لازم نقفله & علامة و أو بمعنى and Sheet1.Cells(Rows.Count, "a").End(xlUp).Row اخر خليه بها بيانات بالعمود A طيب عرفنا ازاى نكتب الكود فما هو وقت تنفيذ الكود السطر ده هيتم وضعه فى اى حدث ( والله دى بقى حضرتك اللى تحددها حسب برنامجك انت ولكن على سبيل المثال نضع هذا الكود فى حدث فتح الفورم شاهد الكود Private Sub UserForm_Initialize() ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End Sub فعند فتح الفورم وتهيئته يتم تعبئة الكمبوبوكس بالبيانات ممكن نكتبه بشكل تانى لو حابب تعرف اكتر من طريقه شوف الكود وبعدين اشرحه لك Private Sub UserForm_Initialize() Lr = Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ComboBox1.RowSource = "sheet1!a2:b" & Lr End Sub قمت بعمل متغير وسميته Lr وممكن تسميها انت بأى اسم كما تحب وقلت ان المتغير ده عباره عن اخر خلية بها بيانات بالعمود A وبالتالى كتبة المصدر بتاع البيانات كالتالى sheet1!a2:b" & Lr" تم الاستعاضه بـ Lr بدلا من السطره ده Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ويمكن كتابة الكود بشكل اخر ( ملحوظه هذا التنوع بالكتابه هو فقط من حيث اسلوب كتابة الكود لكن المضمون واحد) Private Sub UserForm_Initialize() With ComboBox1 .RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End With End Sub الى هنا انتهى درس اليوم اعتقد انه بسيط وممتع يارب اكون وفقت بالشرح وتستفيدو منه عايز اشوف تجاربكم على الدرس على رابط الردود الخاص بالموضوع اتمنى لكم التوفيق وانتظرونا فى طريقه جديده قريبا بأذن الله
    1 point
  44. الطريقه الثالثه :- استخدام النطاقات المعرفه بدالة Offset فى عمل نطاق ديناميكى متغير اليكم الرابط التالى للقدير واستاذى الفاضل / محمد نصرى يشرح فيه الداله offset بطريقه رائعه http://www.officena.net/ib/topic/56588-سلسلة-تعلم-اكسل-معي-بالصوت-والصورة/?do=findComment&comment=358921 تحديدا الفيديو الثانى هو اللى مرتبط بموضوعنا وبعد ما تشاهد الفيديو ارجع لشرحى المتواضع وهتعرف ليه قلتلك افهم الداله Offset وهذا شرحى المتواضع عن الداله offset الداله Offset هى من اهم الدوال فى الاكسيل انا شخصيا لما بتعامل معها بحس انى مهندس مساحه دلوقتى هنعرف ما هى داله offset وازاى نستفيد بيها فى عمل نطاق ديناميكى معرف يتم استخدامه فى تعبئة الكمبوبوكس بالبيانات هقولك ما هى الداله offset بلغة المصطبه واحنا قاعدين كدا نشرب كوباية شاى فى الخمسينه ازاى بقى نطبق الكلام ده فى الاكسيل شوف الصوره دى الاول وبعدين نكمل زى ما شايفين بالصوره وقفت بالخلية G8 وعملت الداله offset فهى مكونه من خمس اقسام 1- reference : - وهو مرجع العمل يعنى تحديد مركز انطلاق العمل وهو كما بالصوره A2 لانها اول خلية بالجدول المظلل باللون الاخضر فأنا حدد A2 لتكون مركز انطلاق العمل 2- rows : - وهى تعنى الصفوف ومن خلالها يتم تحديد صف بداية العمل يعنى اتحرك كم صف من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى صف من الخلية A2 3- Cols: - وهى اختصار كلمة Colmuns تعنى العمود ومن خلالها يتم تحديد عمود بدابة العمل يعنى اتحرك كم عمود من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى عمود من الخلية A2 ) 2 و 3 يتم من خلالهم تحديد نقطة بداية العمل 4- height: - وهى تعنى ارتفاع ومن خلالها يتم تحديد كم صف نريده للاستخدام ( هنا بالمعادله كتبت 6 يعنى اجلب لى 6 صفوف بدأ من الخلية A2 ) 5- width: - وهى تعنى عرض ومن خلالها يتم تحديد كم عمود نريده للاستخدام ( هنا بالمعادله كتبت 1يعنى اجلب لى عمود واحد بدأ من الخلية A2 ) 4 و 5 يتم من خلالهم تحديد كم صف وكم عمود نريده للاستخدام الكلام ده هيتضح لك اكتر لانه اذا عرف السبب بطل العجب انسخ المعادله اللى كتبناه بالخلية G8 واتبع التعليمات اللى بالصوره وبكدا عرفنا نطاق شوف الخطوه اللى بعد كدا شاهد الصوره وبكدا عند عرض الفورم شاهد النتيجة واحد هيقولى وليه يا عم اللفه الطويله دى انا مش شايف فرق بينها وبين الطريقه التانية اللى شرحتها قبل كدا هى نفس الفكره فى تعريف النطاق ومن ثم كتابته فى Rowsource يعنى دلوقتى لو حبينا نضيف اسم جديد فى الخلية A8 مش هيظهر فى الكمبوبوكس وانت قلتلى انه نطاق ديناميكى يكبر ويصغر حسب الادخالات فى العمود A هقوله برافو عليك انك صاحى معايا تعالى بقى اقولك ايه الفرق بينها وبين الطريقه التانية هو انى بدل ما انا محدد عدد 6 صفوف فى المعادله offset هستعين بداله Count A وهى تعمل على عد الخلايا اللى بها كتابه فى نطاق معين =COUNTA(A2:A10000) لو عملنا المعادله دى فى اى خليه هيقوم بعد الخلايا اللى بها بيانات فى النطاق من A2 الى الخلية A10000 مثلا طبعا النتيجة طبقا للصوره السابقه هتكون 6 ولكن لو قمت باضافه اسم جديد هتكون النتيجة 7 أذن اروح للداله Offset واتحكم فى عدد الصفوف من خلال Count A هتكون المعادله كدا =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) لاحظ الفرق بينها وبين المعادله السابقه استبدلنا رقم 6 بالمعادله هننسخ المعادله دى ونروح نعدل النطاق اللى عرفناه قبل كدا وبكدا ضيف اى اسماء عملاء جديده او احذف اى اسماء موجوده وشاهد الكمبوبوكس سوف يتم عرض الاسماء الموجوده فقط دون زياده او نقصان شاهد الصوره واحد هيقولى انت كدا علمتنى ازاى اتحكم فى عدد الصفوف لتكون تلقائيه حسب عددها بالشيت طيب ازاى اتحكم فى عدد الاعمده انا شايف الكمبوبوكس بيظهر عمود 1 انا عايزه يظهر عمودين ازاى التحكم فى المعادله دى المعادله اللى موجوده دلوقتى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) وعلشان تتحكم فى عدد الاعمده غيرها الى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);2) اللى مركز معايا هيلاحظ الفرق بين المعادلتين فى اخر جزء من المعادله وهو عدد الاعمده غيرت بدل من عرض عمود 1 الى عمودين 2 طبعا علشان تغيرها لازم تروح الى قائمة Name Manager وتعمل تحرير للنطاق وتغير المعادله بدل من عمود واحد الى عمودين وطالما عايز تعرض عمودين متنساش زى ما قلنا قبل كدا تكتب 2 فى الخاصيه Column Count شاهد الصوره عند تغيير المعادله علشان تثبت المعلومه فى راسك لازم تجرب الكلام ده عملى بنفسك اتمنى يارب اكون وفقت بالشرح واتمنى لكم التوفيق والى لقاء اخر فى طريقه جديده من طرق تعبئة الكمبوبوكس بالبيانات
    1 point
  45. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( ComboBox) كما قلنا من قبل ان ComboBox هو عباره عن وعاء يتم تعبئته ببيانات محدده لتظهر للمستخدم ليختار منها اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على خمس مراحل 1- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ ComboBox 4-التعامل مع الـ ComboBox فى لغة البرمجه 5-معرفة مهارات تعبئة وتغذية ComboBox باكثر من طريقه التقليديه والاحترافيه منها 6-كيفية اجبار المستخدم على الاختيار من الـ ComboBox نبدأ بسم الله أولا :- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم لأضافه كمبوبوكس جديد على الفورم يوجد طريقتين الطريقه الاولى الطريقه الثانية هذه الطريقه يتم من خلالها نسخ اى عنصر او اكثر من العناصر على الفورم ولصقها لعمل عناصر جديده وسوف يكون لها نفس الخصائص للعناصر الذى تم اخذ النسخ منها وفيما يعد يمكنك تغيير الخصائص للعناصر الجديد كما يحلو لك ******************************************************************************************** ثانيا:- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فى الصورة قبل السابقه على اليسار يوجد خصائص الكمبوبوكس محاطه بمستطيل احمر وهذه صوره مكبره لخصائص الكمبوبوكس هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1- الخاصيه (Name) :- Name هو اسم الـ ComboBox المستخدم فى الاكواد وعند انشاء اى ComboBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له ComboBox1 واذا قمنا بعمل ComboBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى ComboBox2 وانا افضل عدم تغيير اسماء ComboBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر ComboBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub ComboBox1_Change() فأذا قمنا بتغيير اسم ComboBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Customers ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Customers_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ 2- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 3- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style TransParent - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية سماوية كما هو بالمثال السابق سيظهر الـ ComboBox بخلفية ساده ) Fm Back Style Opague - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ ComboBox بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ********************************************************************************************************************** 4- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 5- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ ComboBox بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ ComboBox بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ ComboBox لون سماوى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره التالية ولكن لو كان الخاصيه Back Color اختيارها 0 وايضا الخاصيه Border Color اختيارها 0 سوف يكون لون الخلفية ساده والحدود بدون لون **************************************************************************************************************** 6- الخاصيه ( Bound Column):- هذه الخاصيه تتيح للمستخدم تحديد العمود الذى سيظهر فى عنصر اخر عند الاختيار من الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 7- الخاصيه ( Column Count):- هذه الخاصيه تتيح للمستخدم تحديد كم عدد الاعمده التى ستظهر فى اللـ ComboBox بمعنى ادق يمكن عرض اكثر من عمود فى الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 8- الخاصيه ( Row Source ):- هذه الخاصيه هى اولى الطرق التقليدية لتعبئة الكمبوبوكس بالبيانات مثال عام على الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم طبعا عند الاختيار من الكمبوبوكس سيظهر اسم العميل (اللى هى تعتبر العمود رقم واحد فى الكمبوبوكس ) فى الكمبوبوكس وتختفى قائمة العملاء فلو انا عايز عند الاختيار ايضا يظهر كود العميل فى التكست بوكس رقم 1 ( اللى هو باللون الاصفر فوق) اذن لازم نروح للخاصيه Bound Column واكتب 2 ( أى العمود رقم 2 هو القيمة التى ستظهر فى التكست بوكس رقم 1 ) شاهد الصورة باقى خطوة تانية وهى عمل كود فى حدث تغيير الكمبوبوكس كالتالى Private Sub ComboBox1_Change() TextBox1.Value = ComboBox1.Value End Sub هذا الكود كتبنا فيه ان التكست بوكس 1 يساوى الكمبوبوكس ( واحد هيقولى مش الكمبوبوكس فى عمودين اذن التكست بوكس هيكون اى عمود عند الاختيار هقوله ان الخاصيه Bound Column كتبنا فيها العمود رقم 2 اذن القيمة التى ستظهر فى التكست بوكس 1 هى العمود 2 ) وبكدا عند التشغيل الفورم والاختيار من الكمبوبوكس سيظهر قيمة العمود رقم 1 وهو اسم العميل فى الكمبوبوكس وسيظهر قيمة العمود رقم 2 وهو كود العميل فى التكست بوكس 1 ( بناء على تحديد الخاصيه Bound Column كتبنا فيها العمود رقم 2 وايضا الكود بحدث تغيير الكمبوبوكس ) وعند تشغيل الفورم واختيار من الكمبوبوكس شاهد النتيجة كدا اخدنا مثال عملى على الثلاث خصائص وهما الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) ************************************************************************************************************************** 9- الخاصيه ( Column Heads ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور رؤوس للاعمده او عدم ظهورها وهى تحمل خيارين أما True أو False عندد اختيار False وهو الاختيار الافتراضى بالفيجوال لا يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره عندد اختيار True يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره كما هو مبين بالصورة ان رؤوس الاعمده هى الخلية A1 والخلية B1 وذالك لان المدى للكمبوبوكس هو من A2:B5 فالفيجوال بيسك يقوم بشكل تلقائى بقراءة اول خلية تسبق المدى *********************************************************************************** 10- الخاصيه ( Column Widths ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الاعمده التى ستظهر فى الكمبوبوكس فى سبيل المثال عرض العمود رقم 1 هو 200 وعرض العمود رقم 2 هو 100 اذن لازم تتكتب كالتالى 200Pt;100Pt ( بينهم فاصله ; تكتب من خلال جعل لغة الكيبورد انجلش ثم اضغط على حرف ك بالعربى) شاهد الصوره واحد شاطر هيقولى هو لازم علشان اظهر العمود الثانى اتحرك بالاسكرول بار هقوله لا يوجد طريقه حلوة وهى الخاصيه ( List Width ) هنشرحها ونعرف ازاى نخليها تحل لنا المشكله وتظهر الاعمده بدون الاسكرول بار 11- الخاصيه ( List Width ):- عرض List الافتراضى هو عرض الكمبوبوكس مجموع عرض الاعمده كتبنا فى المثال السابق فى الخاصيه Column Widths ان عرض الاعمده هو 200Pt;100Pt اذن لابد من جعل عرض List مجموع عرض الاعمده 200Pt;100Pt يعنى هيساوى 300Pt وبكدا مش هيكون فى اسكرول بار والاعمده كلها ظاهر عند تشغيل الفورم شاهد الصوره ************************************************************************************************************** 12- الخاصيه ( DropButtonStyle ):- هذه الخاصيه تتيح للمستخدم التحكم فى شكل الكمبوبوكس شاهد الصوره اختر أى من الاشكال فى الصورة التى تناسب ذوقك ********************************************************************************** 13- الخاصيه ( Enabled ):- هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار False لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox ويكون الشكل باهت ********************************************************************************************** 14- الخاصيه ( Locked ):- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار True لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox يعنى هيكون فى حمايه على ComboBox وهذه الخاصيه تشبه تماما الخاصيه Enabled الفرق الوحيد بينهم هو فى شكل التنسيق للكمبوبوكس ********************************************************************** 15- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ ComboBox الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) ********************************************************************************************************** 16- الخاصيه ( Font Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ ComboBox ********************************************************************************************* 17- الخاصيه ( Height ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ ComboBox أو كتابة رقم للارتفاع فى الخاصيه Height ********************************************************************************************* 18- الخاصيه ( Left ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الايسر للفورم **************************************************************************** 19- الخاصيه ( Top ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 78 *** وقيمة Top 138 ستجد الصوره التالية *********************************************************************************************************************** 20- الخاصيه ( List Row ):- هذه الخاصيه من الخصائص المهمه لانها تتيح للمستخدم التحكم فى عدد الصفوف التى يتم عرضها عند فتح الـ ComboBox شاهد الصوره لو عايزين اظهار عدد 3 صفوف فقط شاهد الصوره التالية ************************************************************************************************************ 20- الخاصيه ( List Style ):- شاهد الصوره تتضح لك اهميه الاداه فمن خلالها يمكن التحكم فى طريقه عرض البيانات عن فتح الكمبوبوكس **************************************************************************************************************** 21- الخاصيه ( Width ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد العرض للـ ComboBox أو كتابة رقم للعرض فى الخاصيه Width **************************************************************************************************************** 22- الخاصيه ( Visible ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور ComboBox عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ ComboBox على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ ComboBox على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم ****************************************************************************************************************
    1 point
  46. الأخ الكريم ابو حنين مشكور على التوضيح التام للمطلوب .. هكذا يكون التوضيح إليك الملف التالي (تم الاستعانة بعمود مساعد لجمع الشروط) العمود المساعد هو العمود H إليك الكود مع شرح الأسطر لتتمكن من التعديل عليه Sub MultipleCriteriaFilter() 'يقوم الكود بفلترة البيانات طبقاً لعدة شروط '[H5] لتسهيل العمل تم عمل معادلة في العمود الثامن '=IF(AND(E5>$D$1-1,E5<$D$2+1),C5&F5,"") 'المعادلة تتحقق من وقوع التاريخ بين تاريخي الشرط ، فإذا تحقق 'ليشمل الشروط الأخرى [F5] و [C5] يتم ربط النصوص في الخلايا '------------------------------------------------------------ 'تعيين المتغيرات Dim WS As Worksheet Set WS = Sheets("General") 'إلغاء خاصية اهتزاز الشاشة Application.ScreenUpdating = False 'بدء التعامل مع ورقة العمل With WS 'إزالة الفلترة إذا ما كانت موجودة مسبقاً .AutoFilterMode = False 'الفلترة بناءً على العمود الثامن أي العمود المساعد .Range("A4:H4").AutoFilter field:=8, Criteria1:=Range("H3").Value End With 'إعادة تفعيل خاصية اهتزاز الشاشة Application.ScreenUpdating = True End Sub ** لا تنسى أن تحدد أفضل إجابة من خلال الضغط على كلمة "تحديد كأفضل إجابة " ؛ ليظهر الموضوع مجاب ومنتهي. ** لا تنسى أن تضغط كلمة "أعجبني" (الأمر لن يستغرق منك ثواني) ---> (أمضيت من وقتي وقتاً ليس بالقليل .. فاضغط ولا تكن بخيل) تقبل تحياتي Filter Data By Multiple Criteria YK.rar
    1 point
  47. اعتقد ان هناك من سأل عن كيفية الحماية والتفعيل من خلال الهارديسك إليكم اخوانى الاعضاء برنامجى الخاص بكيفية التفعيل من خلال رقم الهارديسك ارجو ان ينال اعجاب ورضا الجميع تحياتى ،،، Serial_No.rar
    1 point
  48. السلام عليكم بعد اذن اخي الحبيب عادل حيث انني بدات بالحل قبل ان ارى الرد فارفق الملف كمتمم لاخي عادل مع الشكر ابو خالد EEEEE.rar
    1 point
  49. بسم الله الرحمن الرحيمكود صغير وبسيط للترحيل الى كم ماتريد من اوراق العمل بدون تغيير في الكود التغيير يتم في ورقة الترحيل التي تاخذ اسم الورقة من اسم الحساب بمعنى انك تسمي اي حساب باسم الورقة حقه من هنا عند اختيارك لاي حساب يتعرف الكود على الورقة التي تريد الترحيل اليها وممكن في العمود المعني بالتسميات في كود الترحيل تختار ما شئت من اوراق العمل ( اسماء الحسابات) وبضغطة زر تتطاير البيانات كلا الى موقعة في اوراق العمل . وفي التجربة برهان ...... طالبين الدعاء منكم لاغير تحياتي وسلامي اخوكم/ خبور ____________________1.rar
    1 point
×
×
  • اضف...

Important Information