بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 31 مار, 2022 in all areas
-
4 points
-
السلام عليكم ورحمة الله اعزائى اعضاء منتدى اوفيسنا زملائى العاملين بكنترولات التعليم التجارى لسنوات النقل بعد التحية و كل عام و انتم بخير بمناسبة قرب شهر رمضان الكريم .... اعاده الله علينا و على الامة العربية و الاسلامية و الانسانية جمعاء بالخير و البركات و ايضا قرب امتحانات آخر العام من حوالى 3 اعوام كنت قد اضفت الى منتدانا الموقر شيتات التعليم التجارى و الحقيقة لم اجد لها القبول الذى كنت اتوقعة و لكن بعد مرور تلك المدة اود ان اتوجه بالشكر و التحية للاخ الكريم عضو المنتدى / صوت الحق و الحقيقة لولاه ما عاد هذا الموضوع للنور مرة اخرى من بداية شهر فبراير الماضى حتى كتابة هذا الموضوع و انا فى عمل مستمر للتعديل و التطوير حتى يصبح العمل على اكمل و جه و اعلى الامكانيات يوجد فى كل شيت ورقة تعليمات فيها شرح مفصل لكل خاصية من خصائص البرنامج و الآن اليكم الشيتات : كنترول اولى.xlsm كنترول ثانية.xlsm3 points
-
في الحقيقة نحن لسنا بحاجة لا إلى FormatNumber ولا إلى Round.. يطلب منك أكسس فقط أن تغير المنازل العشرية بعد الفاصلة إلى صفر في الحقل المطلوب2 points
-
تفضل هذا الكود Sub RunQurey() Dim conn As ADODB.Connection, rs As ADODB.Recordset, Sql As String Dim strConnString As String, ServerAddress As String, ServerUserName As String, ServerPassword As String '============================= معلومات الدخول للسيرفر ======================= ServerAddress = "xxxx.mssql.somee.com" ServerUserName = "" ServerPassword = "" '============================= الاتصال بالسيرفر ======================= strConnString = "Provider=SQLOLEDB;Data Source=" & ServerAddress & _ ";Persist Security Info=True;User ID=" & ServerUserName & ";Password=" & ServerPassword Set conn = New ADODB.Connection conn.Open strConnString '============================= تنفيذ جملة الاستعلام الحذف او الاضافة او التحديث ======================= Sql = "" ' ضع هنا جملة الاستعلام Set rs = conn.Execute(Sql) rs.Close Set rs = Nothing End Sub2 points
-
السلام عليكم ورحمة الله بارك الله فيك اخى الكريم / محمد حسن اسعدنى و شرفنى مرورك الكريم على الموضوع اما بالنسبة للاخ الكريم / عبد الفتاح بدوى اشكرك على تعلقك اللطيف اما الكود الذى تسأل عنه هو كود و احد يصلح للعديد من الازرار لفتح ورقة معينة فقط ان يكون الاسم المكتوب على الزر مطابق تماما لاسم الشيت المراد فتحه و ربط الكود بالزر اليك الكود Sub OpenSheet() Dim x As String On Error Resume Next x = ActiveSheet.Buttons(Application.Caller).Caption Sheets(x).Visible = xlSheetVisible Sheets(x).Select End Sub2 points
-
2 points
-
السلام عليكم ورحمة الله وبركاته .. وبدون مقدمات 🙂 يطيب لي أن أضع بين يديكم برنامج ( مكتبة الأكواد الخاصة ) كان الهدف من تصميم البرنامج أن يخدمني بشكل خاص وذلك لحفظ الأكواد التي أحتاجها بشكل دائم وتجميعها في مكان واحد وتسهيل عملية البحث والوصول إليها بكل سهولة .. والبرنامج به تجميعة طيبة من الأكواد بعضها مما أبدعه الشباب هنا وبعضها مما صنعتها بنفسي ومنها من مواقع مختلفة .. والآن أحببت أن أشارككم بها وأن تعم الفائدة للجميع 🙂 البرنامج طبعا مفتوح بأحلاسه وأقلاسه ( بنماذجه وأكواده ) 😁 ويوجد فيه خاصية البحث ، وإدراج مرفقات (خارجية طبعا ) ومتاح للتطوير والتعديل والزيادة وتطويعه حسب احتياجاتكم .. 🌹 :: ولا تنسوني من صالح دعواتكم :: Pleeeeeeeeeeeeeeese 😄🤲🌷🌹 (واجهة البرنامج) (نافذة تفاصيل الكود) أعتقد البرنامج ما محتاج شرح واضح وضوح الشمس 😁 ::والتحميل في المرفقات :: مكتبة الأكواد الخاصة.accdb1 point
-
السلام عليكم ورحمة الله تعالى وبركاته من حين لآخر قد نستخدم برامج محمولة بتمرير قيم اليها لاجراء بعض العمليات من خلال الـ Command Line ولكن احيانا تعلق بالذاكرة ولا يتم إغلاق البرامج بشكل صحيح وبالتالي تسبب الصداع والمشاكل التى تجعلك غير قادر على معاودة العمل مرة أخرى لذلك قد يصبح من الضروري إنهاء العملية بالقوة بقتل التطبيق العالق فى الذاكرة اقدم لكم وظيفة بسيطة تقوم بتمرير الاسم الكامل للعملية المطلوب إنهاؤها فقط Public Function WMI_KillProcess(sProcessName As String, Optional sHost As String = ".") As Boolean On Error GoTo Error_Handler Dim oWMI As Object 'WMI object to query about the PC's OS Dim sWMIQuery As String 'WMI Query Dim oCols As Object Dim oCol As Object Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sHost & "\root\cimv2") sWMIQuery = "SELECT Name FROM Win32_Process" Set oCols = oWMI.ExecQuery(sWMIQuery) For Each oCol In oCols If LCase(sProcessName) = LCase(oCol.Name) Then oCol.Terminate ' Kill this instances of the process End If Next oCol WMI_KillProcess = True Error_Handler_Exit: On Error Resume Next Set oCol = Nothing Set oCols = Nothing Set oWMI = Nothing Exit Function Error_Handler: MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: WMI_KillProcess" & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" Resume Error_Handler_Exit End Function ويتم استدعاء الوظيفة من خلال السطر الاتى Call WMI_KillProcess("calculator.exe") طبعا تغير اسم التطبيق العالق والذى تريد انهاءه بالقوة بدلا من calculator.exe وهذا مثال للتوضيح KillProcess.accdb1 point
-
1 point
-
الأستاذ أبا خليل أنا أتابع فقط .. وأود تقديم شكري لك على جهودك وسعة صدرك حفظك الله وأبقاك في خير1 point
-
1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته هل من طريقة لطرح قيمة خلية من خلية محتوية على أكبر قيمة من بين مجموعة خلايا ؟ في المثال المطلوب طرح الخصم الأساسي من أكبر خصم معروض من الموردين خصومات جيدة.xlsx1 point
-
1 point
-
1 point
-
الاستاذ / @عبد الله قدور طيب وماذا عن الراجل الطيب / @عبدالقدوس48 الذى قدم مثالا لك وقال تفضل اخى الكريم هل المثال لم يقوم بالحل1 point
-
اخي العزبز 1 - تم تغبر فورمات التاريخ فب عمود 1 ليست بوكس 2 - تم ضبط معدلات تكست بوكس 1 و 2 3 - تم عمل عناوين لأعمدة الليست بوكس حسب المتاح من موارد تعبئة الليست بوكس 4 - اما تظليل سطور الليست بوكس اذا وافقت شرط اذا كان تاريخ الأستحقاق يساوي او اصغر من تكست بوكس 5 فلا يوجد مستحيل فى VBA Excel 5 - ماذا تقصد من طباعة النموذج هل تقصد طباعة ال UserForm ام طباعة الجدول ملاجظة : تم تغير 3 تواريخ استحقاق للتجربة تحياتى وشاهد المرفق Book1.xlsm1 point
-
لحذف الاسم في العمود A بالمعادلات =SUBSTITUTE(A1;"الاسم:";"";1) واسحب نزولاً لحذف رقم الهوية في العمود B بالمعادلات أيضاً =SUBSTITUTE(B1;"رقم الهوية:";"";1) واسحب نزولاً1 point
-
تحتاج المعادلة ادناه للتجميع واضافة كل شهر مستقبلا على المعادلة =SUMIFS(January!G$3:G$39,January!B$3:B$39,B3)+SUMIFS(February!G$3:G$39,February!B$3:B$39,B3)+SUMIFS(March!G$3:G$39,March!B$3:B$39,B3) انظر للمرفق Total Suppliers Invoice - Copy (1).xlsm1 point
-
1 point
-
أحسنت أستاذ ابراهيم عمل ممتاز جعله الله فى ميزان حسناتك1 point
-
1 point
-
بالله حد يعلمني كيف ارتب ارقام العمود يكون نفس ترتيب العمود اللى قبله كما انا محدد بجدول الاكسيل المرفق1 point
-
أخي الكريم السلام عليكم ((مع رجاء إرفاق ملف للعمل عليه من قبل الزملاء الأفاضل)): لإزالة السلاسل النصية من مجموعة من الخلايا في العمود B بدءاً من B2 نزولاً حتى آخر صف تريده يمكنك استخدام معادلة صفيف كما يلي : في الخلية C2: =SUM(MID(0&B2;LARGE(INDEX(ISNUMBER(--MID(B2;ROW($1:$99);1))*ROW($1:$99););ROW($1:$99))+1;1)*10^ROW($1:$99)/10) استخدم ALT+SHIFT+ENTER ثم تنسخ الناتج وتلصقه (لصق قيم في العمود B مثلاً) أو تسجل موديول كما يلي لمسح كلمات (رقم الهوية:) والإبقاء على الرقم في العمود ذاته: Sub ReplaceText() Cells.Replace What:="الاسم:", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="رقم الهوية:", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub أما بقية الأسئلة ففي منتدانا من خلال البحث ستجد ضالتك إن شاء الله تعالى. إو إن شئت استخدم المعادلة التالية في العمود الثالث كما يلي: =IF($A1<>"";VLOOKUP(A1;$B$1:$B$170;1;0);"") تقبل تحياتي العطرة والسلام عليكم. ملاحظة: تمت كتابة معظم مشاركتي حسب طلبك كما جاء في الصورة التي أرفقت ....حرر للبيان. اوفسينا.xlsm1 point
-
وعليكم السلام ورحمة الله وبركاته أهلا @عبد الله قدور استخدم التابع FormatNumber بهذه الطريقة FromatNumber(15.5,0)1 point
-
1 point
-
1 point
-
1 point
-
وجزاكم بمثل ما دعوتم أخي الكريم أبو عائشة @abo3aesha_2014 وفقكم الله تعالى لما يحب ويرضى آمين والسلام عليكم ورحمة الله وبركاته 💐🏵️🌺🌸1 point
-
1 point
-
1 point
-
أحسنت بارك الله بك اخي الكريم @Ali Mohamed Ali جزاكم الله خيرا وأحسن إليكم آمين 👍🌺😊1 point
-
بعد اذن استاذنا الكريم محمد-يمكنك استخدام هذه المعادلة بالتنسيقات الشرطية =AND(COUNT($A2:$D2)<>0,A2=MAX($A2:$D2)) 111.xlsx1 point
-
1 point
-
طرح اكثر من سؤال في موضوع واحد يجعل الاعضاء لا ينظرون الى هكذا مواضيع !!!! نظرة سريعة من شريط الادوات ادخل على الصيغ ثم ادارة الاسماء عندها ستظهر لك قائمة بمصادر بيانات الورقة ابحث عن هذا _snitems انقر نقرتين عليه ستجد معادلة سوف تلاحظ اخر مدى هو الصف 102 يمكنك زيادة المدى . غير مفهوم . لقد جربت وضع كلمة في العمود الاول وظهرت بالكومبوبكس وبحث بدون مشاكل . _snitems هذه تعني مصدر البيانات في العمود الاول ؟ يمكنك تحديد مدى معين وتسميته وربطها بالكومبوبوكس بشرط الا يتعارض مع الاسماء الخاصة ببيانات الاكسيل نفسها والا سيرفضها تحياتي1 point
-
ماذا عن هذا Sub test() Dim A As Variant: Dim w As Variant Dim i As Long: Dim ii As Long With Sheet1 A = .Cells(1, 1).Resize(.Cells(Rows.Count, 4).End(xlUp).Row, 11) End With With CreateObject("scripting.dictionary") For i = 1 To UBound(A) If Not .exists(A(i, 6) & "#" & A(i, 4)) Then .Add A(i, 6) & "#" & A(i, 4), Array(A(i, 9), A(i, 10), A(i, 11)) Else w = .Item(A(i, 6) & "#" & A(i, 4)) For ii = 0 To UBound(w) w(ii) = w(ii) + A(i, ii + 9) Next .Item(A(i, 6) & "#" & A(i, 4)) = w End If Next Sheet2.Cells.ClearContents Sheet2.Cells(1, 1).Resize(.Count) = Application.Transpose(.keys) Sheet2.Cells(1, 1).Resize(.Count).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, Other:=True, OtherChar:="#", FieldInfo:=Array(Array(2, 1)) Sheet2.Cells(1, 3).Resize(.Count, 3) = Application.Index(.items, 0, 0) Sheet2.Select End With End Sub1 point
-
استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @ابوخليل بحثت عن البرنامج الذى تفضلتم ونوهتم عنه بالمنتدى ولم اوفق فى الوصول اليه فضلا وكرما ممكن الرابط1 point
-
فيديووووو جديددددد كيفية دمج عدة ملفات بهيدرز مختلفة في ملف واحد باستخدام الكويري في الفيديو دة هاتقدر تتدمج ملفات كثيرة في ملف واحد بس خلي بالك الملفات فيها اعمدة مختلفة >> يعني كل ملف في اعمدة مختلفة فا في الدرس ده هانتعلم نلم كل الاعمدة في ملف واحد https://youtu.be/2oXx8bt-1m0 جلب كل اسماء الاعمدة من الملفات.rar1 point
-
فورم التنقل بين الشيتات مع البحث والاضافة والتعديل والحذف الفيديو1 point
-
عمل رائع يا أستاذ مجدي يا ريت تكمل جميلك بالملف اللي تم عليه الشرح1 point
-
السلام عليكم الاخ الفاضل / حسام مصطفي بارك الله فيك لتنفيذ طلبك اخي الكريم ... استبدل الكود السابق بالكود التالي .... Private Sub CommandButton1_Click() Dim I As Integer Dim File As String Dim LR As Long Dim all_ws As Workbook '----------------------------- Set ws = Worksheets("æÑÞÉ1") Application.ScreenUpdating = False Application.DisplayAlerts = False '----------------------------- ws.Range("A11:Y10000").ClearContents For I = 1 To 110 If Cells(I, 27) = "" Then Exit For TextBox1.Value = Cells(I, 27).Value File = ActiveWorkbook.Path & "\" & TextBox1.Value Workbooks.Open File Sheets("ÇÚãÇá ÓäÉ").Range("A11:Y1000").Copy '----------------------------- Windows("ÊÌãíÚ.xls").Activate ws.Select LR = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row ws.Cells(LR, 1).Select ws.Paste Range("a11").Select Application.ScreenUpdating = True Application.DisplayAlerts = True Next I For Each all_ws In Application.Workbooks If Not all_ws.Name = ThisWorkbook.Name Then all_ws.Close (True) Next all_ws Unload Me End Sub ومعك دائما في اي استفسار تريده تقبل خالص تحياتي1 point
-
السلام عليكم الاخ الكريم / ابو يوسـف بارك الله فيك اسمك منور بالعربي ياراجل ... ايوه كده بالنسبة لهذا الطلب فعذرا لم اراه الا الآن اليك الكود التالي ... ولكن هناك بعض الملاحظات لطريقه عمله 1- قم بوضع اسماء ملفات المدارس الموجودة لديك والتي تريد تجميع بياناتها في ملف تجميع في العمود AA اسفل بعض والكود يعمل علي 110 ملف .... وان اردت زيادتهم ما عليك الا زيادة الرقم 110 في الكود الي الرقم الذي تريده 2- شاهد الملف وطريقه عمله واي شرح لاي جزء من الكود ... اخبرني ومعك دائما باذن الله 3- كما سبق ذكره يجب ان يكون ملف تجميع موجود في نفس فولدر المدارس 4- تم وضع مثال لعدد 5 مدارس من ملفاتك المرفقة Private Sub CommandButton1_Click() Dim I As Integer Dim File As String Dim LR As Long Set ws = Worksheets("ورقة1") Application.ScreenUpdating = False Application.DisplayAlerts = False '----------------------------- ws.Range("A11:Y10000").ClearContents For I = 1 To 110 If Cells(I, 27) = "" Then Exit For TextBox1.Value = Cells(I, 27).Value File = ActiveWorkbook.Path & "\" & TextBox1.Value Workbooks.Open File Sheets("اعمال سنة").Range("A11:Y1000").Copy '----------------------------- Windows("تجميع.xls").Activate ws.Select LR = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row ws.Cells(LR, 1).Select ws.Paste Range("a11").Select Application.ScreenUpdating = True Application.DisplayAlerts = True Next I Unload Me End Sub ارجو ان يفي بطلبك ... جرب واشعرنا بالنتائج واهلا وسهلا بك بيننا وسط اخوه لك في الله ( بالعربي ) ... هههه تقبل خالص تحياتي تجميع بيانات المدارس.rar1 point
-
السلام عليكم الاخوة الكرام وجدت فورم لنفس الطلب و لكن بشكل اخر و كود اخر اتمني لكم الافادة مع الشكر SheetsToPrint.zip1 point
-
السلام عليكم ورحمة الله وبركاته أخي الفاضل مراد الجزائر الملف المرفق به فورم تختار منه الاوراق التي تريد ان تطبعها ومن ثم يتم الطباعه دون ظهور جميع الاوراق أتمني من الله أن يكون طلبك تقبل مروري طباعة_11.rar1 point
-
أدعوا الله سبحانه وتعالي ان اكون وفقت في تبسيط المعلومة وسردها وشرحها بما يتناسب مع جميع المستويات درسنا اليوم سوف نشرح به اداة اخري من ادوات الفورم وانا عن نفسي اسميها بالاداة السحرية لما تتمتع به من قدرات علي التحكم بالفورم وقدرات مذهلة حقا في الابداع والابتكار في التصميم الاداة هي الصفحات المتعددة MultiPage control الدرس السابع نبدا علي بركة الله بسم الله الرحمن الرحيم يتألف عنصر تحكم الصفحات المتعددة من واحد أو أكثر من الكائنات صفحة، تحتوي كل منها على مجموعتها الخاصة من الضوابط. يتم استخدام متعدد أفضل عندما كنت ترغب في التعامل مع كمية كبيرة من البيانات التي يمكن تصنيفها إلى فئات متعددة، حيث يمكن إنشاء صفحة منفصلة لكل فئة. وترد جميع الضوابط التي تمت إضافتها إلى صفحة في عنصر تحكم متعدد الصفحات، في وتصبح جزءا من هذه الصفحة والذي يميز عناصر التحكم من تلك التي هي على خلاف ذلك جزء من في UserForm. عنصر تحكم متعددة لديها العديد من الصفحات، حيث اختيار صفحة يجعلها واحدة الحالية (مما يجعلها مرئية) في الوقت الذي يختبئ الآخرين. كل صفحة من عنصر تحكم متعدد الصفحات لديها ترتيب الجدولة الخاصة. يتم ترقيم الصفحات من صفر، ولتحديد الصفحة الأولى في عنصر تحكم متعدد الصفحات، استخدم التعليمات البرمجية: MultiPage1.Value = 0. افتراضيا، عنصر تحكم متعدد الصفحات لديه 2. لإضافة صفحات، انقر بزر الماوس الأيمن على علامة التبويب واختر الصفحة جديد ((حدد حذف الصفحة لحذف صفحة) ملاحظة: كل صفحة من عنصر التحكم المتعددMultiPage سوف يكون منفصل ويمكن استخدام مجموعة او اكثر من ا OptionButtons، بغض النظر عن ما إذا كانت جميع OptionButtons (عبر كل الصفحات ) لها نفس اسم مجموعة. Dynamically Add/Remove a Page "إستخدام الأسلوب Add: بناء الجملة: تعيين M = MultiPage1.Pages.Add ( pageCaption، pageIndex). pageIndex (اختياري) هو عدد صحيح الذي يحدد موقف للصفحة التي ستدرج لاحقا، بدءا من صفر لأول صفحة / يتم تعيين اسم للصفحة، pageCaption يحدد تسمية توضيحية. كلاهما اختياري التحديد. مثال علي ذلك Set m = MultiPage1.Pages.Add("Page5", "NewPage", 1) هذا السطر يضيف صفحة جديدة مع اسم Page5 والتسمية التوضيحية NewPage، مثل الصفحة الثانية (المركز الثاني في ترتيب الصفحات). MultiPage1.Pages.Add "Page3"; MultiPage1.Pages(2).Caption = "NewPage" لاضافة صفحة جديدة ,وتعيين التسمية التوضحية newPage ويمكن نستخدم امر مباشر بسيط MultiPage1.Pages.Add لاضافة صفحة جديدة ولازالة صفحة MultiPage1.Pages.Remove (pageIndex). مثال MultiPage1.Pages.Remove (1) وذلك لازالة الصفحة الثانية لتغيير أو تعيين خصائص الصفحة في وقت التشغيل، يتعين علينا أن نحدد أن الصفحة في عنصر تحكم متعدد الصفحات، التي يمكن أن يتم بطرق مختلفة. للوصول إلى صفحة فردية في عنصر تحكم متعدد الصفحات، بعد طرق التحكم في الصفحات 1. مؤشر رقمي (باستخدام مجموعة صفحات): 0 مؤشر يشير إلى الصفحة الأولى، مؤشر 1 إلى الصفحة الثانية، وهلم جرا. رمز لتعيين تسمية توضيحية -. MultiPage1.Pages 2. الطريقة البند (باستخدام مجموعة صفحات): البند 0 مؤشر يشير إلى الصفحة الأولى، مؤشر البند 1 إلى الصفحة الثانية، وهلم جرا. رمز لتعيين تسمية توضيحية -. MultiPage1.Pages.Item (ItemIndex) التعليق 3. اسم الصفحة:. رمز لتعيين تسمية توضيحية - MultiPage1.Pages ("[PageName") تسمية توضيحية أو MultiPage1.Pages.Item ("[PageName") تسمية توضيحية 4. كائن الصفحة: رمز لتعيين تسمية توضيحية - MultiPage1.PageName.Caption 5. SelectedItem : رمز لتعيين تسمية توضيحية - MultiPage1.SelectedItem.Caption مثال : تغيير خصائص كل صفحة من عنصر تحكم متعددة، وذلك باستخدام أساليب مختلفة من الصفحة التحديد. شاهد الشكل التالي مثال عملي في حال كنت ترغب في عمل فورم لادخال البيانات بشكل تسلسلي (أي خطوة واحدة تلو الأخرى)، ثم بدلا من استخدام UserForms المتعددة (أكثر من فورم) فمن الأفضل لاستخدام عنصر تحكم الصفحات المتعددة لإنشاء صفحات متعددة في UserForm واحدة. يمكن جعل الصفحة التالية يمكن الوصول إليها إلا بعد أن تم ملؤها في الصفحة السابقة ودخلت. وتبين لنا كيفية إنشاء واجهة معالج يتكون من 4 صفحات، على النحو المبين أدناه. سوف نستخدم عنصر تعدد الصفحات في انشاء فورم طلب توظيف ونستعرض معا كل مرحلة ونقوم بمراجعة خصائص المجموعة المشتركة في الاطارات واضافة عناصر الي الليست بوكس والكمبو بوكس الاعداد للفورم (طلب توظيف) الصفحة الاولي والتي سوف نقوم فيها بادخال الأسم ولا يمكن لنا الانتقال للصفحة التالية الا بعد استكمال البيانات الصفحة الثانية والتي سوف نقوم فيها باختيار النوع والعمر الصفحة الثالثة والتي سوف نقوم فيها باختيار الحالة الأجتماعية والجنسية lllll الصفحة الرابعة والتي سوف نختار منها مجال العمل والمستوي التعليمي وسوف نستخدم الكود التالي في حدث انطلاق الفورم لضبط اعدادات الصفحات وتسميتها وتسمية الاطارات وفي حدث Private Sub MultiPage1_Change() سوف نقوم بوضع الكود التالي لضبط الانتقال بين الصفحات بواسطة مفتاحي التالي والسابق وضبط مفتاح الحفظ كالتالي برمجة مفتاح السابق للتنقل بين الصفحات برمجة مفتاح (التالي) للتنقل بين الصفحات وفي النهاية كود مفتاحي الحفظ والخروج الاكواد مشروحة سطر سطر مع الفورم والتطبيق بالمرفقات كان هناك اقتراح وعلي حسب طلبكم هل اطرح امثلة تقومون بتنفيذها ونستعرضها معا خطوة خطوة لاني مش شايف تفاعل او اسئلة حول المواضيع ان كان اقتراحي محل قبول فسيتم طرح امثلة تقومون بتطبيقها ورفع التصاميم والنتائج ونتشاور حولها وللموضوع بقية والي لقاء اخر مع أداة جديدة من ادوات الفورم MultiPage.rar1 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
-
بارك الله لك أخي عبد الله وأود أن أضيف بعض الخلفية النظرية التي ربما يحتاجها الأخ المشترك في الدورة ما هي vba ؟ هي لغة برمجة غير قائمة بذاتها (أي يتم تضمينها داخل أي تطبيق) ولا تستطيع بناء برنامج متكامل وحدها (الذي يقوم بهذا هي لغة vb فيجوال بيسك أو vb.net الإصدار الأحدث من vb ) متى نحتاج لاستخدامها؟ * عند الرغبة في اختزال خطوات كثيرة يجب تنفيذها فمثلا إذا أردنا إضافة نص لخلية وتنسيقه بأكثر من طريقة مثل لون الخط وحجم الخط والإطار وما إلى ذلك * وكذلك نحتاجها عند التكرار وهو تكرار تنفيذ مجموعة من الأوامر بصورة متتالية أو مشروطة * نحتاجها أيضا في التعامل مع المستخدم لجمع بيانات منه في صورة نموذج ومن ثم التعامل مع هذه البيانات وغيرها الكثير من الاستخدامات ما الفرق بين vba و vb ؟ عرفنا سابقاً فيجوال بيسك التطبيقات بأنها لغة برمجة تحتاج لتطبيق آخر يتم تضمينها داخله ولكنها بها كل مميزات الفيجوال بيسك وكل الكائنات التي تستخدم داخل الفيجوال بيسك يمكن استخدامها في vba غير أنها ينقصها وهذا ما تزيد به لغة vb عنها وهو القدرة على بناء برامج تنفيذية قائمة بذاتها وتتفضل vba عن vb بأن لها من القدرة على التعامل مع التطبيق المضمنة داخله بصورة أكثر سهولة من vb فمثلا للتعامل مع المصنف النشط نستعمل الكائن activeworkbook بينما إذا أردنا ذلك من خلال vb نحتاج لكثير من الأكواد ما علاقة vba بالإصدار الأحدث من vb وهو vb.net ؟ بنفس الطريقة يمكن للـ vba استعمال كل مميزات vb.net بشرط وجود ملفات تشغيل vb.net على جهاز المستخدم ما الماكرو؟ الماكرو عبارة عن مجموعة من السطور يبدأ بكلمة sub ثم اسم الماكرو وتنتهي بكلمة end sub وبينهما جميع الأكواد التي يتم تسجيلها أو كتابتها ما أفضل الطرق للتعامل مع الماكرو؟ * يوجد طريقة تسجيل الماكرو وهي الأسهل والتي ينصح بها في البداية * ويوجد طريقة كتابة الأكواد مباشرة بدون الحاجة إلى استعمال مسجل الماكرو وهي للمستوى المتقدم *** بينما الطريقة الفاعلة وهي التي يستخدمها معظم المبرمجين هي (كما علمنا ديننا : خير الأمور الوسط) الجمع بين الطريقتين بمعنى استعمال الماكرو ثم تعديل الكود سواء بإضافة سطور أو حذف سطور أو تعديلها ويجدر الإشارة هنا إلى أهمية التخطيط المسبق لعملية تسجيل الماكرو فيجب أن تكون محددا لكل ما تريد تنفيذه بالماكرو وإلا سيتم كتابة خطوات أنت لست في حاجة إليها وإنما تم تنفيذها أثناء تخطيطك أو ترتيبك لما تريد أن تقوم به وقديما علمونا : التخطيط الجيد سبيل النجاح ..... حتى وإن أخذ وقتا طويلاً فالوقت الذي يستهلك في التخطيط والإعداد لا يتساوى من الوقت المستهلك لتعديل الأخطاء الناتجة عن عدم التخطيط بل ربما يتم إعادة تنفيذ ما لم يتم التخطيط له أكثر من مرة حتى نصل للصواب وأخيرا أقول الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله1 point
-
0 points