بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 08/05/17 in مشاركات
-
2 points
-
2 points
-
2 points
-
اشكرك اخي عبد الله الصاري على مرورك فكرة الاستاذ خليل ابو البراء ممتازة وجزاه الله بكل خير امس قبل ان اضع مشاركتي عملت بحث في المدونة وجدت نفس الشيء جزاك الله خيرا اخي ظننت ان الطريقة التي اريدها ممكنة ولكن لابأس بهذه الفكرة تحياتي لك ولاستذنا ابو البراء2 points
-
بسم الله الرحمان الرحيم السلام عليكم اغلبيتنا يعلم بان الاكسل جيد في انشاء برامج حسابية صغيرة لاكن مع مرور الوقت و زيادة حجم قاعدة البيانات للبرنامج يصبح هناك نوع من البطئء و التشنج في البرنامج لان الاكسل عبارة عن جداولة الكترونية و ليس بقاعدة بيانات و ايضا كما نعلم بان الاكسيس جيد جدا بالنسبة الاكسل لاستخدامه كقاعدة بيانات وب بالفعل الاكسيس مازال لحد الان يستعمل كقاعدة البيانات في البرامج المتوسطة لذى فكرة في دمج الاكسل و الاكسيس معا للستفادة من قوة الاكسل في الجداول و الحسابات و جمال الفورم مع الاكسيس المتميز في قوة قاعدة البيانات و عدم تاثره كثيرا بكبر حجمها كما هو معمول مع لغات البرمجة الكبيرة ك c++ vb.net java python ...... اذن ستجدون في هذا الموضوع مثال شامل لربط الاكسل بالاكسيس فقط بالاكواد بحيث سنتعامل مع الاكسيس بسلاسة كبيرة وذلك استخدام اوامر sql مع vbq بسهولة كبيرة وتنفذ جميع الاوامر من حذف او اضافة او تعديل او التقارير المعروف بها الاكسيس من خلال الاكسل دون فتح ملف الاكسيس (في الحقيقة يفتح ملف الاكسيس لاكن لن تلاحظ ابدا بانه مفتوح) والعملية المتبعة في ذلك مقسمة الى ثلاث مراحل فتح اتصال مع الاكسيس تنفيذ اوامر sql (select insert update delete) غلق الاتصال مع الاكسيس لا اطيل عليكم و اترككم مع الملف و لاي استفسارات انا في الخدمة تحياتي للجميع و ارجو ان تستفيدو من الموضوع ConnectDatabaseAccess.rar1 point
-
1 point
-
ادخال التاريخ الهجري بصورة مباشرةيطلب الكثير من الأصدقاء طريقة لإدخال التاريخ الهجري بصورة مباشرة ثم تحويله الى التاريخ الميلاديهنا سأشرح كيفية ادخال التاريخ الهجري بصورة مباشرة لإمكانية تحويله فيما بعد الى التاريخ الميلادي بدون أي كود أو معادلات معقدةيجب ان نعرف أولا ان الاكسيل يستعمل يوم 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 الملف المرفق فيه التوضيح وجاهز الى العمل تحويل التاريخ الهجري الى ميلادي والعكس.rar1 point
-
أخى الكريم السلام عليكم تفضل الملف المرفق إن شاء الله به المطلوب أتمنى أن يفى بالغرض استخدمت الدالة SumIf يوجد جدول به الاحصائيات المطلوبة يمكن الإضافة كما تشاء مع العل أنها دالة صفيف يعنى لابد من الضغط على مفاتيح Ctrl + Shift + Enter عند الانتهاء أو التعديل على الدالة تقبلوا تحياتى إجابة السؤال.rar1 point
-
السلام عليكم تفضل أخي ناصر شرح السطر الذي طلبته ولكن بأسلوب آخر .. قم بنسخ الكود في موديول عادي ، ونفذ الكود باستخدام 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 Sub1 point
-
1 point
-
رائع ومبدع كالعادة أستاذى الغالى أبو البراء دائما السهل الممتنع الحل بأبسط طرق تقبل تحياتى1 point
-
السلام عليكم من خبرتي هنا ومن اطلاعي على كثير من الاعمال مشكلة تواجهنا نحن المبرمجين حين نريد تطبيق فكرة انه تقدح في رؤوسنا رسمة للطريق (طريقة تنفيذ الفكرة) وهذا القدح لابد وان له اصل وخلفية ثقافية وهو الاطلااع على امثلة مشابهة وغالبا هذه الامثلة لا ترقى الى مرتبة الاتقان والاحتراف ، ومن هنا حين يسلك المبرمج هذه الطرق لا بد يتوه في النهاية وقد يصل الى طريق مسدود . وكان الاولى بنا ولو كنا على درجة جيدة من الاحتراف ان نطرح المسألة قبل البدء من اجل النقاش ومشاركة العقول خبرتها وتجاربها . اختنا الكريمة : توظيف جداول عديدة واستعلامات الحاق ليست طريقة صحيحة تنفيذ فكرتك يجب الا يتعدى جدول الحضور واستعلام واحد فقط فان زاد عن ذلك فهو نقطة ضعف في التصميم1 point
-
أنا لا أعمل على 2003 ولن أعمل عليه أبداً إن شاء الله لأننا ببساطة في 2017 وداخلين على 2018 .. إن شاء الله يمكن يفيدك أحد الأخوة ممن زالوا يستخدمون الإصدار العتيق1 point
-
1 point
-
1 point
-
جرب المعادلة بهذا الشكل .. غير النطاق الذي تريد العد على أساسه وشرط العد .. المعادلة يمكن أن تزيد عدد الشروط .. النطاق يليه الشرط ، والنطاق يليه الشرط ، والنطاق يليه الشرط ... كفاية كدا ولا أكتب كمان :::::::: =COUNTIFS($C$2:$C$348,6,$F$2:$F$348,"مسيحية",$G$2:$G$348,"P")1 point
-
السلام عليكم بعد اذن استاذي الكريم سليم اخي الكريم محمد أيضاُ ينفعك هذا الكود البسيط If Val(TextBox1) > Val(TextBox2) Then TextBox3 = "منتظم" Else TextBox3 = "متأخر" End If1 point
-
تفضل زمليلي كريم قد تم تنفيذ طلبك عن طريق انشاء شيت يتم فيه ترحيل كل البيانات ومن خلاله يتم البحث كما بالمرفق اتمنى انا يتنال اعجابك كشوف معاشات استثنائية - نسخة.rar1 point
-
وعليكم السلام أخي العزيز سمير النجار بارك الله فيك وجزاك الله خيراً في الحقيقة رأيت هذا الدرس التعليمي في أحد المواقع من فترة وقمت بتطبيقه لأستفيد أنا شخصياً منه ، وأحببت أن أشارك به إخواني لأني رأيت أكثر من موضوع لنفس الطلب تقبل تحياتي1 point
-
أخي الكريم طلبك بسيط لكن ارفق ملف ليعمل عليه الأخوة الكرام بالمنتدى ... يمكن استخدام الدوال COUNTIF أو SUMPRODUCT1 point
-
يوضع الكود في مويول عادي لمعرفة المزيد حول الأساسيات المطلوبة للتعامل مع الأكواد لابد من مشاهدة الفيديو التالي1 point
-
هل الملفات كلها في مجلد واحد أم مجلدات متعددة؟ لما لا تذكر التفاصيل وتضع الكود الذي تستخدمه عموماً جرب الكود التالي .. '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 Sub1 point
-
وعليكم السلام أخي الكريم الموضوع غير مكتمل الأركان .. ارفق نماذج بسيطة من ملفاتك ووضح هل الملفات ملفات إكسيل فقط أم أن هناك ملفات أخرى وإذا كانت ملفات إكسيل هل يوجد أوراق عمل أخرى أم أنها ورقة واحدة فقط؟ وأين الكود الذي يطبع 15 ملف فقط ولا يطبع بقية الملفات؟1 point
-
اضف عمود على الجدول تحدد فيه طريقة الدفع نقدا او اجل ثم اضفه الى الفاتورة ومن خلالها تحدد كيفية الدفع ومن خلال هذا العمود تستطيع التعامل مع سند القبض1 point
-
وعليكم السلام أخي الكريم نايف جرب الكود التالي (مع استبدال اسم ورقة العمل في الكود باسم ورقة العمل لديك حيث أنني أحبذ التعامل مع أسماء أوراق العمل باللغة الإنجليزية) 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 Sub1 point
-
جرب هذاالكود 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 Sub1 point
-
مافي مشكلة ، طيب اخبرينا كيف تريدينا نشتغل على برنامجك المرفق؟ اعطينا مثال لوسمحتي جعفر1 point
-
1 point
-
الى هنا اقول وباعلى صوت حق لك ان تصبح خبير واكثر استاذ شيفان1 point
-
1 point
-
1 point
-
وهذا ملف شرح للموضوع من الاخت الفاضلة ام عهود بارك الله فيها وجزاها الله عنا كل خير Convert an Access Database to SQL Serve1.rar1 point
-
السلام عليكم أخي مراد تفضل المرفق إن شاء الله أكون تفاديت هذا الخطـأ فاتورة جديدة7.rar1 point