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

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

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

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

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


    • نقاط

      13

    • Posts

      13,165


  2. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      3

    • Posts

      3,491


  3. wael_rafat

    wael_rafat

    03 عضو مميز


    • نقاط

      2

    • Posts

      440


  4. الأستاذ / محمد الدسوقى

Popular Content

Showing content with the highest reputation on 05 أغس, 2017 in all areas

  1. السلام عليكم مع درس جديد وتعلم عمل فورم شريط التقدم Progress Bar ، والذي يستخدم في حالة الأكواد التي تستغرق وقت ليظهر مدى تقدم الكود ، ومرفق مع الملف صور لكيفية ضبط أدوات التحكم على الفورم .. https://www.file-upload.com/p9rtijdjg3ki
    2 points
  2. عفواً أخي محمد الحمد لله الذي بنعمته تتم الصالحات
    2 points
  3. لا اعلم هل قصدك بهذا ام شيء اخر PICTURE.rar
    2 points
  4. اشكرك اخي عبد الله الصاري على مرورك فكرة الاستاذ خليل ابو البراء ممتازة وجزاه الله بكل خير امس قبل ان اضع مشاركتي عملت بحث في المدونة وجدت نفس الشيء جزاك الله خيرا اخي ظننت ان الطريقة التي اريدها ممكنة ولكن لابأس بهذه الفكرة تحياتي لك ولاستذنا ابو البراء
    2 points
  5. بسم الله الرحمان الرحيم السلام عليكم اغلبيتنا يعلم بان الاكسل جيد في انشاء برامج حسابية صغيرة لاكن مع مرور الوقت و زيادة حجم قاعدة البيانات للبرنامج يصبح هناك نوع من البطئء و التشنج في البرنامج لان الاكسل عبارة عن جداولة الكترونية و ليس بقاعدة بيانات و ايضا كما نعلم بان الاكسيس جيد جدا بالنسبة الاكسل لاستخدامه كقاعدة بيانات وب بالفعل الاكسيس مازال لحد الان يستعمل كقاعدة البيانات في البرامج المتوسطة لذى فكرة في دمج الاكسل و الاكسيس معا للستفادة من قوة الاكسل في الجداول و الحسابات و جمال الفورم مع الاكسيس المتميز في قوة قاعدة البيانات و عدم تاثره كثيرا بكبر حجمها كما هو معمول مع لغات البرمجة الكبيرة ك c++ vb.net java python ...... اذن ستجدون في هذا الموضوع مثال شامل لربط الاكسل بالاكسيس فقط بالاكواد بحيث سنتعامل مع الاكسيس بسلاسة كبيرة وذلك استخدام اوامر sql مع vbq بسهولة كبيرة وتنفذ جميع الاوامر من حذف او اضافة او تعديل او التقارير المعروف بها الاكسيس من خلال الاكسل دون فتح ملف الاكسيس (في الحقيقة يفتح ملف الاكسيس لاكن لن تلاحظ ابدا بانه مفتوح) والعملية المتبعة في ذلك مقسمة الى ثلاث مراحل فتح اتصال مع الاكسيس تنفيذ اوامر sql (select insert update delete) غلق الاتصال مع الاكسيس لا اطيل عليكم و اترككم مع الملف و لاي استفسارات انا في الخدمة تحياتي للجميع و ارجو ان تستفيدو من الموضوع ConnectDatabaseAccess.rar
    1 point
  6. 1 point
  7. ادخال التاريخ الهجري بصورة مباشرةيطلب الكثير من الأصدقاء طريقة لإدخال التاريخ الهجري بصورة مباشرة ثم تحويله الى التاريخ الميلاديهنا سأشرح كيفية ادخال التاريخ الهجري بصورة مباشرة لإمكانية تحويله فيما بعد الى التاريخ الميلادي بدون أي كود أو معادلات معقدةيجب ان نعرف أولا ان الاكسيل يستعمل يوم 1/1/1900 للميلاد كبداية لإدخال التاريخ وجميع الحسابات المتعلقة بالتاريخ تبدأ من هذا التاريخ، وأي ادخال لتاريخ قبل 1/1/1900 يعتبره الاكسيل "نص" "TEXT" ولا يجري عليه أيه حسابات.لإدخال التاريخ الهجري في خلية يجب ان نقوم بعمل تنسيق أرقام لتلك الخلية قبل ادخال التاريخ حسب الخطوات التالية: 1- نختار تنسيق خلايا "Format Cells" 2- من "Number" نختار "Date" 3- من "Calendar Type" نختار "Arabic Hijri" 4- نؤشر على مربع "Input dates according to selected calendar" 5- ننقر على مفتاح OK والان الخلية جاهزة لإدخال التاريخ الهجري بصورة مباشرة واجراء كافة عمليات التاريخ كما لو كانت بالتاريخ الميلادي ملاحظة مهمة: أصغر تاريخ بالهجري يقبله الاكسيل هو 29/8/1317 ويقابل 1/1/1900 الملف المرفق فيه التوضيح وجاهز الى العمل تحويل التاريخ الهجري الى ميلادي والعكس.rar
    1 point
  8. أخى الكريم السلام عليكم تفضل الملف المرفق إن شاء الله به المطلوب أتمنى أن يفى بالغرض استخدمت الدالة SumIf يوجد جدول به الاحصائيات المطلوبة يمكن الإضافة كما تشاء مع العل أنها دالة صفيف يعنى لابد من الضغط على مفاتيح Ctrl + Shift + Enter عند الانتهاء أو التعديل على الدالة تقبلوا تحياتى إجابة السؤال.rar
    1 point
  9. السلام عليكم تفضل أخي ناصر شرح السطر الذي طلبته ولكن بأسلوب آخر .. قم بنسخ الكود في موديول عادي ، ونفذ الكود باستخدام F8 ليتم تنفيذ الكود سطر بسطر وتتعلم ماذا يحدث مع كل سطر Sub Test() 'تعريف المتغير من النوع ورقة عمل Dim sh As Worksheet 'تعريف المتغير من النوع نطاق Dim rng As Range 'تعريف المتغير من النوع النصي Dim str As String 'تعريف متغير ليحمل القيم التي سيتم تقسيمها في النص وسيكون بمثابة مصفوفة Dim x As Variant 'تعيين قيمة لمتغير ورقة العمل ليشير لورقة العمل المسماة "بيانات الطلبة" ونستخدم المتغير في الكود Set sh = Sheets("بيانات الطلبة") 'تعيين قيمة للمتغير ليساوي آخر عمود في الصف السابع '[XFD7] للانتقال من نقطة البداية وهي [xlToLeft] حيث تستخدم كلمة 'إلى أول عمود جهة اليسار والذي يعتبر آخر عمود به بيانات في الصف السابع 'قبل اسم المتغير الذي يشير للنطاق [Set] لاحظ عند تعيين نطاق يتم استخدام كلمة 'وبعد علامة يساوي يتم الإشارة إلى ورقة العمل ثم النطاق Set rng = sh.Range("XFD7").End(xlToLeft) 'يمكن من خلالها معرفة عنوان النطاق [Address] الخاصية 'لإظهار العنوان في رسالة [MsgBox] استخدم كلمة [rng] ولذلك إذا أردت معرفة عنوان النطاق المسمى '[$F$7] إذا قمت بتنفيذ هذا السطر ستجد أن عنوان النطاق هو 'يمكن الحصول على عنوان النطاق بدون علامة الدولار عن طريق استخدام السطر التالي 'MsgBox rng.Address(0, 0) 'أي يتم وضع قوسين وما بين القوسين نضع صفر ثم فاصلة ثم صفر MsgBox rng.Address 'نفس السطر السابق وهذا هو خلاصة ما سيتم تقسيمه في السطر التالي في الشرح MsgBox sh.Range("XFD7").End(xlToLeft).Address 'لعمل تقسيم للنص بناءً على فاصل محدد [Split] تستخدم الدالة 'الفاصل هنا الذي سيتم التقسيم على أساسه هو علامة الدولار 'لاحظ أن الفاصل يوضع بين أقواس تنصيص '[Locals Window] عند تنفيذ هذا السطر انظر في نافذة 'View >> Locals Window 'ستجد أن المتغير يحمل القيم التي تقسيمها بهذا الشكل 'x(0) >> "" 'x(1) >> "F" 'x(2) >> "7" 'تم تقسيمه لثلاثة أجزاء وهذا بسبب وجود علامة الدولار مرتين [$F$7] أي أن العنوان '[F] الجزء الذي يهمنا هنا في الكود هو رمز العمود أي حرف '[x(1)] وهذا تواجد في التقسيم الثاني ألا وهو x = Split(rng.Address, "$") 'بهذا نكون قد وصلنا للسطر المطلوب حيث يتم تخزين رمز العمود في متغير نصي str = Split(sh.Range("XFD7").End(xlToLeft).Address, "$")(1) 'إظهار رمز العمود في رسالة MsgBox str End Sub
    1 point
  10. كل الشكر للأخ الكريم ياسر وكل كن شارك
    1 point
  11. رائع ومبدع كالعادة أستاذى الغالى أبو البراء دائما السهل الممتنع الحل بأبسط طرق تقبل تحياتى
    1 point
  12. السلام عليكم من خبرتي هنا ومن اطلاعي على كثير من الاعمال مشكلة تواجهنا نحن المبرمجين حين نريد تطبيق فكرة انه تقدح في رؤوسنا رسمة للطريق (طريقة تنفيذ الفكرة) وهذا القدح لابد وان له اصل وخلفية ثقافية وهو الاطلااع على امثلة مشابهة وغالبا هذه الامثلة لا ترقى الى مرتبة الاتقان والاحتراف ، ومن هنا حين يسلك المبرمج هذه الطرق لا بد يتوه في النهاية وقد يصل الى طريق مسدود . وكان الاولى بنا ولو كنا على درجة جيدة من الاحتراف ان نطرح المسألة قبل البدء من اجل النقاش ومشاركة العقول خبرتها وتجاربها . اختنا الكريمة : توظيف جداول عديدة واستعلامات الحاق ليست طريقة صحيحة تنفيذ فكرتك يجب الا يتعدى جدول الحضور واستعلام واحد فقط فان زاد عن ذلك فهو نقطة ضعف في التصميم
    1 point
  13. أنا لا أعمل على 2003 ولن أعمل عليه أبداً إن شاء الله لأننا ببساطة في 2017 وداخلين على 2018 .. إن شاء الله يمكن يفيدك أحد الأخوة ممن زالوا يستخدمون الإصدار العتيق
    1 point
  14. اهلا بك في منتداك منتدى اوفيسنا اتفضل اليك هذا الرابط به ما تريد
    1 point
  15. جزاكم الله خيرا ع الرد وهعمل موضوع من جديد حاضر
    1 point
  16. جرب المعادلة بهذا الشكل .. غير النطاق الذي تريد العد على أساسه وشرط العد .. المعادلة يمكن أن تزيد عدد الشروط .. النطاق يليه الشرط ، والنطاق يليه الشرط ، والنطاق يليه الشرط ... كفاية كدا ولا أكتب كمان :::::::: =COUNTIFS($C$2:$C$348,6,$F$2:$F$348,"مسيحية",$G$2:$G$348,"P")
    1 point
  17. السلام عليكم بعد اذن استاذي الكريم سليم اخي الكريم محمد أيضاُ ينفعك هذا الكود البسيط If Val(TextBox1) > Val(TextBox2) Then TextBox3 = "منتظم" Else TextBox3 = "متأخر" End If
    1 point
  18. تفضل زمليلي كريم قد تم تنفيذ طلبك عن طريق انشاء شيت يتم فيه ترحيل كل البيانات ومن خلاله يتم البحث كما بالمرفق اتمنى انا يتنال اعجابك ‏‏كشوف معاشات استثنائية - نسخة.rar
    1 point
  19. وعليكم السلام أخي العزيز سمير النجار بارك الله فيك وجزاك الله خيراً في الحقيقة رأيت هذا الدرس التعليمي في أحد المواقع من فترة وقمت بتطبيقه لأستفيد أنا شخصياً منه ، وأحببت أن أشارك به إخواني لأني رأيت أكثر من موضوع لنفس الطلب تقبل تحياتي
    1 point
  20. أخي الكريم طلبك بسيط لكن ارفق ملف ليعمل عليه الأخوة الكرام بالمنتدى ... يمكن استخدام الدوال COUNTIF أو SUMPRODUCT
    1 point
  21. يوضع الكود في مويول عادي لمعرفة المزيد حول الأساسيات المطلوبة للتعامل مع الأكواد لابد من مشاهدة الفيديو التالي
    1 point
  22. هل الملفات كلها في مجلد واحد أم مجلدات متعددة؟ لما لا تذكر التفاصيل وتضع الكود الذي تستخدمه عموماً جرب الكود التالي .. 'Written: July 05, 2017 'Author: Leith Ross #If Win64 = True Then Private Declare PtrSafe Function ShellExecute _ Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) _ As LongPtr #Else Private Declare Function ShellExecute _ Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) _ As Long #End If Sub PrintAllFiles() Dim ActPrtr As String Dim answer As Integer Dim File As Variant Dim Folder As Variant Dim Item As Variant Dim Items As Object Dim PrtJobs As Object Dim PSEx() As String Dim ret As Long Dim WMI As Object ActPrtr = Split(Application.ActivePrinter, " on ")(0) 'Printer Status Extended ReDim PSEx(1 To 18) PSEx(1) = "Other - Not Listed" PSEx(2) = "Undetermined" PSEx(3) = "Printer is Idle" PSEx(4) = "Printer is Printing" PSEx(5) = "Printer is Warming Up" PSEx(6) = "Printer has Stopped Printing" PSEx(7) = "Printer is Offline" PSEx(8) = "Printer is Paused" PSEx(9) = "An Error occured" PSEx(10) = "Printer is Busy" PSEx(11) = "Printer is Not Available" PSEx(12) = "Printer is Waiting" PSEx(13) = "Printer is Processing" PSEx(14) = "Printer is Initializing" PSEx(15) = "Printer is in Power Save Mode" PSEx(16) = "Job is Pending Deletion" PSEx(17) = "I/O Active" PSEx(18) = "Manual Feed required" Set WMI = GetObject("winmgmts:\\.\root\CIMV2") Set Items = WMI.ExecQuery("SELECT * FROM Win32_Printer") With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False .Show If .SelectedItems.Count > 0 Then Folder = .SelectedItems(1) Else Exit Sub End If End With File = Dir(Folder & "\*.*") PrintFiles: Do While File <> "" GoSub CheckPrinterStatus ret = ShellExecute(0&, "Print", File, vbNullString, Folder, 1&) If ret < 32 Then MsgBox "Print Command Failed." & vbLf & vbLf & "Error: " & ret Exit Sub End If File = Dir() Loop Exit Sub CheckPrinterStatus: For Each Item In Items If Item.Name = ActPrtr Then If Item.Status <> "OK" Then answer = MsgBox(ActPrtr & " Is Not Ready To Print." & vbLf & vbLf _ & "Status: " & Item.Status & vbLf & "Cause: " & PSEx(Item.ExtendedPrinterStatus) _ & vbLf & vbLf & "Wait For Printer?", vbExclamation + vbYesNo + vbDefaultButton2) If answer = vbNo Then answer = MsgBox("Do You Want Clear All Remaining Print Jobs?", vbQuestion + vbYesNo) If answer = vbYes Then GoTo ClearPrintJobs Else Exit Sub End If End If End If Next Item Return ClearPrintJobs: Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set PrtJobs = WMI.ExecQuery("select * from Win32_Printer where PrinterState=0 and PrinterStatus=6") For Each Item In PrtJobs Item.CancelAllJobs Next Item End Sub
    1 point
  23. وعليكم السلام أخي الكريم الموضوع غير مكتمل الأركان .. ارفق نماذج بسيطة من ملفاتك ووضح هل الملفات ملفات إكسيل فقط أم أن هناك ملفات أخرى وإذا كانت ملفات إكسيل هل يوجد أوراق عمل أخرى أم أنها ورقة واحدة فقط؟ وأين الكود الذي يطبع 15 ملف فقط ولا يطبع بقية الملفات؟
    1 point
  24. اضف عمود على الجدول تحدد فيه طريقة الدفع نقدا او اجل ثم اضفه الى الفاتورة ومن خلالها تحدد كيفية الدفع ومن خلال هذا العمود تستطيع التعامل مع سند القبض
    1 point
  25. وعليكم السلام أخي الكريم نايف جرب الكود التالي (مع استبدال اسم ورقة العمل في الكود باسم ورقة العمل لديك حيث أنني أحبذ التعامل مع أسماء أوراق العمل باللغة الإنجليزية) Private Sub CommandButton1_Click() Dim m As Integer Dim r As Integer Dim t As Integer Dim i As Integer Dim x As Variant ListBox1.Clear With Sheets("Sheet1") m = .Cells(.Rows.Count, 1).End(xlUp).Row x = Split(TextBox1.Text, vbCrLf) If UBound(x) = -1 Then Exit Sub For i = LBound(x) To UBound(x) For r = 2 To m If .Cells(r, 2) Like x(i) & "*" Then ListBox1.AddItem ListBox1.List(t, 0) = .Cells(r, 1) ListBox1.List(t, 1) = .Cells(r, 2) t = t + 1 End If Next r Next i End With End Sub
    1 point
  26. جرب هذاالكود Option Explicit Sub Copy_With_Hidden_Sheet() If ActiveSheet.Name <> "Sales" Then Exit Sub Dim Lr_sales%, Lr_data% Dim Rg_Tocopy As Range Lr_sales = Sheets("sales").Cells(Rows.Count, "A").End(3).Row Lr_data = Sheets("data").Cells(Rows.Count, "V").End(3).Row If Lr_sales < 2 Then Lr_sales = 2 Set Rg_Tocopy = Sheets("data").Range("l1:v" & Lr_data) With Sheets("Sales") .Range("A2:K" & Lr_sales).ClearContents .Range("a2").Resize(Lr_data, Rg_Tocopy.Columns.Count).Value = Rg_Tocopy.Value .Range("A1").Select End With End Sub
    1 point
  27. مافي مشكلة ، طيب اخبرينا كيف تريدينا نشتغل على برنامجك المرفق؟ اعطينا مثال لوسمحتي جعفر
    1 point
  28. عليكم السلام اتفضل اخي الكريم docmd.runcommand accmdprint
    1 point
  29. الى هنا اقول وباعلى صوت حق لك ان تصبح خبير واكثر استاذ شيفان
    1 point
  30. واليكم هذا الرابط الجديد وهو تحديث ابريل 2016 و هو لبرنامجين (المعلمين على قانون الكادر والاخر على القانون المدنى الجديد) http://www.mediafire.com/…/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D…
    1 point
  31. تم تحميل البرنامج برنامج ممتاز
    1 point
  32. وهذا ملف شرح للموضوع من الاخت الفاضلة ام عهود بارك الله فيها وجزاها الله عنا كل خير Convert an Access Database to SQL Serve1.rar
    1 point
  33. السلام عليكم أخي مراد تفضل المرفق إن شاء الله أكون تفاديت هذا الخطـأ فاتورة جديدة7.rar
    1 point
×
×
  • اضف...

Important Information