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

أ / محمد صالح

أوفيسنا
  • Posts

    4,444
  • تاريخ الانضمام

  • Days Won

    192

Community Answers

  1. أ / محمد صالح's post in طلب تصحيح معادلة excel was marked as the answer   
    المعادلة صحيحة مائة بالمائة
    لأن شهر أغسطس 31 يوما
    فلذلك لم يتم الشهر الثاني عشر حتى يكون الناتج 1 سنة 
    وأي تعديل في المعادلة بإضافة يوم أو طرح يوم سيجعل ناتج المعادلة في غير هذه الحالات غير صحيح
    ربما تحتاج لحساب الفرق بين تاريخين على اعتبار أن الشهر 30 يوما فقط بدون الاهتمام بعدد ايام الشهر الحالي سواء 28 أو 29 أو 31
    وهذا موجود في المنتدى
    يمكنك البحث عنه
    وهذه أحد النتائج
    بالتوفيق
  2. أ / محمد صالح's post in استخراج احدث تاريخ was marked as the answer   
    الموضوع بسيط جدا
    أحدث تاريخ يمكنك استعمال دالة max للخلايا التي بها تواريخ مثلا
    =max(b2,d2,f2,.......) وهكذا آخر عمود فيه تاريخ
    وبالنسبة لإجمالي القيم يمكنك استعمال دالة sum للخلايا التي بها قيم مثلا
    =sum(a2,c2,e2,.......) بالتوفيق
  3. أ / محمد صالح's post in مشكلة الاكسل فى win 10 was marked as the answer   
    الكود في الملف مكتوب لنواة ويندوز مختلفة مثلا 32بت والنسخة الحالية 64بت
    وإذا كان لك صلاحية الدخول على الكود يمكنك وضع كلمة ptrsafe قبل اسم الدالة أو الإجراء مثل هذا الكود
    #If VBA7 Then Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr #Else Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long #End If بالتوفيق
  4. أ / محمد صالح's post in مشكلة في تظليل ايام الجمعة والسبت was marked as the answer   
    يمكنك عمل ذلك من خلال التنسيق الشرطي عن طريق معادلة
    =OR(C$6="الجمعة",C$6="السبت") وتطبق على الخلايا  C7:AH56
    بالتوفيق
  5. أ / محمد صالح's post in استبدال الرقم بالنص was marked as the answer   
    يمكنك استعمال هذه المعادلة في الخلية D6
    =IFERROR(INDEX(الاسماء!$G$6:$G$215,MATCH(الخطة!D6,الاسماء!$F$6:$F$215,0)),"") ثم سحب المعادلة للأسفل ويسارا
    وإذا كنت تستعمل النسخ الحديثة للأوفيس يمكنك استعمال هذه المعادلة بدون سحب في الخلية D6 فقط'
    =IFERROR(INDEX(الاسماء!$G$6:$G$215,MATCH(الخطة!D6:AD230,الاسماء!$F$6:$F$215,0)),"") بالتوفيق
  6. أ / محمد صالح's post in تحديد عدد الارقام بعد الفاصلة العشرية was marked as the answer   
    هذا يعتمد على طريقة بنائك لعناصر القائمة ليست بوكس
    أثناء إضافة العناصر إليها يمكنك التحكم في تنسيق القيم الموجودة في الخلايا مثلا بهذه الصورة
    Dim i As Integer For i = 1 To 10 ListBox1.AddItem Format(Cells(i, 1).Value, "0.00") Next i هذا الكود يقوم بإضافة الخلايا من A1:A10 إلى القائمة وتنسيق الرقم بها إلى رقمين عشريين
    بالتوفيق
  7. أ / محمد صالح's post in مشكلة في كود ارسال راسئل الى واتس اب was marked as the answer   
    ما شاء الله أنت وصلت لمستوى جميل
    لماذا تقول أنك مبتدئ؟
    أقترح عليك الاعتماد على العمود F في تحديد القائمة
    يمكنك تجربة هذا التعديل
    Sub WhatsApp() Dim Contact As String Dim Message As String Dim Obj As New DataObject Dim lr As Long lr = Cells(Rows.Count, "F").End(xlUp).Row For Each Cell In Range("F2:f" & lr) Contact = Cell.Value Message = Cell.Offset(0, 2).Value Obj.SetText Message Obj.PutInClipboard ActiveWorkbook.FollowHyperlink "https://wa.me/" & Contact Application.Wait(Now + TimeValue("00:00:06")).True Call SendKeys("^v", True) Application.Wait(Now + TimeValue("00:00:05")).True Call SendKeys("~", True) Application.Wait(Now + TimeValue("00:00:05")).True Next MsgBox "Done!" End Sub بالتوفيق
  8. أ / محمد صالح's post in ترحيل الصفوف الى الصف الاعلى was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    يمكنك تجربة هذا الكود
    Sub TransferData() Dim wsCurrent As Worksheet Dim wsPrevious As Worksheet Dim lastRow As Long Dim i As Long Dim j As Long Dim targetRow As Long ' تحديد الشيت الحالي والشيت السابق Set wsCurrent = ThisWorkbook.Sheets("6") ' قم بتغيير اسم الشيت حسب الحاجة Set wsPrevious = ThisWorkbook.Sheets("5") ' قم بتغيير اسم الشيت حسب الحاجة ' إيجاد آخر صف في الشيت الحالي lastRow = wsCurrent.Cells(wsCurrent.Rows.Count, "B").End(xlUp).Row ' مسح الصفوف التي تحتوي على كلمة "منقول" في العمود M For i = lastRow To 7 Step -1 If wsCurrent.Cells(i, "M").Value = "منقول" Then wsCurrent.Rows(i).Delete End If Next i ' إيجاد آخر صف بعد المسح lastRow = wsCurrent.Cells(wsCurrent.Rows.Count, "B").End(xlUp).Row ' ترحيل البيانات من الشيت السابق targetRow = lastRow + 1 For i = 7 To wsPrevious.Cells(wsPrevious.Rows.Count, "B").End(xlUp).Row If wsPrevious.Cells(i, "M").Value = "منقول" Then For j = 1 To 21 ' الأعمدة من A إلى U If j >= 6 And j <= 12 Then wsCurrent.Cells(targetRow, j).Formula = wsPrevious.Cells(i, j).Formula Else wsCurrent.Cells(targetRow, j).Value = wsPrevious.Cells(i, j).Value End If Next j targetRow = targetRow + 1 End If Next i ' ترتيب البيانات حسب الاسم في العمود B wsCurrent.Range("A7:U" & targetRow - 1).Sort Key1:=wsCurrent.Range("B7"), Order1:=xlAscending, Header:=xlNo End Sub بالتوفيق
  9. أ / محمد صالح's post in كود بحث was marked as the answer   
    الكود جيد ويعمل بسرعة
    ربما مع زيادة عدد صفوف البيانات يأتي البطء
    أنا شخصيا لا أفضل البحث بمجرد كتابة حرف أو حرفين وهكذا
    الأفضل كتابة الكلمة كلها ثم الضغط على زر بحث أو عند الخروج من مربع النص مثلا
    حتى تتم عملية البحث مرة واحدة ولا تستهلك قدرا من موارد الجهاز
    بالتوفيق
  10. أ / محمد صالح's post in برامج تطبيقات الموبايل was marked as the answer   
    هناك العديد من البدائل لموقع MIT App Inventor التي يمكنك استخدامها لإنشاء تطبيقات الأندرويد بسهولة. إليك بعض الخيارات:
    Thunkable: منصة قوية تعتمد على السحب والإفلات لإنشاء التطبيقات. تم تطويرها بواسطة مهندسين من MIT App Inventor1.
    AppyBuilder: منصة أخرى تعتمد على السحب والإفلات، مشابهة لـ App Inventor وتوفر ميزات إضافية.
    Bubble: أداة لإنشاء تطبيقات الويب بدون برمجة، يمكن استخدامها لإنشاء تطبيقات متقدمة بواجهة مستخدم مخصصة.
    بالتوفيق
  11. أ / محمد صالح's post in خصم من راتب موظف was marked as the answer   
    تفضل أخي الكريم
    تم استعمال نفس فكرة اليومي والخصم في نفس يوم تاريخ البداية مع اختلاف الشهور
    بالتوفيق
    خصم يومي أو شهري تلقائي .xlsx
  12. أ / محمد صالح's post in تعديل كود اظهار شريط التمرير الأفقي والراسي was marked as the answer   
    جرب هذا الكود في أحداث المصنف 
    Private Sub Workbook_SheetActivate(ByVal Sh As Object) ShowScrollBar End Sub أو يمكنك وضع كود showscrollbars في هذا الحدث مباشرة بدون تسميته باسم خاص
    بالتوفيق
  13. أ / محمد صالح's post in أبحث عن دالة Image ولا أجدها was marked as the answer   
    قد تحتاج إلى التأكد من أنك تستخدم أحدث إصدار من Microsoft 365، حيث أن هذه الدالة متاحة في Excel لـ Microsoft 3651.
    وإذا كنت مصريا ولك أبناء في التعليم فيمكنك استعمال البريد الموحد الخاص بهم في تفعيل أوفيس 365
    بالتوفيق
  14. أ / محمد صالح's post in هل يمكن عمل زر يقوم بنسخ محتويات TextBox1 وزر اخر يقوم بلصق ما تم نسخة مسبقا ولصقة داخل TextBox6 was marked as the answer   
    يمكنك استعمال هذا الكود في النسخ
    Private Sub CommandButton19_Click() Dim clipboard As Object Set clipboard = New MSForms.DataObject clipboard.SetText TextBox1.Text clipboard.PutInClipboard End Sub وهذا كود اللصق
    Private Sub CommandButton20_Click() Dim clipboard As Object Set clipboard = New MSForms.DataObject clipboard.GetFromClipboard TextBox6.Text = clipboard.GetText End Sub تأكد من أنك قد أضفت مكتبة “Microsoft Forms 2.0 Object Library” إلى مشروعك لتتمكن من استخدام الكائن DataObject.
    بالتوفيق
  15. أ / محمد صالح's post in اضافة علامة ' قبل الرقم was marked as the answer   
    جرب استعمال هذا الكود
    For Each cell In range("a2:a10000") cell.Value = "'" & cell.Value Next cell بالتوفيق
  16. أ / محمد صالح's post in تقسيم ملف حسب عدد الصفوف لعدة ملفات منفصلة was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته،
    نعم، يمكن القيام بذلك باستخدام VBA في Excel. إليك كود VBA الذي يمكنك استخدامه لتقسيم البيانات إلى ملفات منفصلة كل 30 صف:
    افتح ملف Excel واضغط على Alt + F11 لفتح محرر VBA. أدخل الكود التالي في وحدة جديدة:   Sub SplitDataIntoFiles() Dim ws As Worksheet Dim newWs As Worksheet Dim wb As Workbook Dim newWb As Workbook Dim lastRow As Long Dim i As Long Dim j As Long Dim filePath As String Set ws = ThisWorkbook.Sheets("Sheet1") ' تأكد من أن اسم الورقة صحيح lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row filePath = ThisWorkbook.Path & "\" j = 1 For i = 1 To lastRow Step 30 Set newWb = Workbooks.Add Set newWs = newWb.Sheets(1) ws.Rows(i & ":" & i + 29).Copy Destination:=newWs.Rows(1) newWb.SaveAs filePath & "Data_" & j & ".xlsx" newWb.Close SaveChanges:=False j = j + 1 Next i MsgBox "تم تقسيم البيانات بنجاح!",,"mr-mas.com" End Sub قم بتعديل اسم الورقة في السطر Set ws = ThisWorkbook.Sheets("Sheet1") إذا كان مختلفًا. اضغط على F5 لتشغيل الكود. سيقوم هذا الكود بتقسيم البيانات إلى ملفات منفصلة كل 30 صف وحفظها في نفس مسار الملف الأصلي.
    بالتوفيق
  17. أ / محمد صالح's post in تفسير معادله بحث was marked as the answer   
    إجابتي بدون رؤية الملفات؛ لأني على الهاتف حاليا.
    المعادلة هي مجرد معادلة بحث عن الرقم الموجود في الخلية m12  وجلب القيم من العمود الثالث في النطاق المسمى prod
    للوصول إلى النطاقات المسماة من تبويب معادلات formulas ثم إدارة الأسماء name manager 
    بالتوفيق 
  18. أ / محمد صالح's post in ظبط تقيم الموظف حسب مدة الشهر was marked as the answer   
    يمكنك وضع تاريخ نهاية التقييم في العمود E والتقييم في العمود F
    واستعمال هذه المعادلة في العمود C إلى
    =IF(TODAY()<=E2,F2,1) بالتوفيق
  19. أ / محمد صالح's post in اخفاء لما تكون فارغة و اظهار لما تكون بها مبلغ تلقائيا was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    حتى يعمل الكود تلقائيا يجب ربطه بحدث مثل تغيير التحديد أو تغيير محتوى الشيت
    وهذا الكود في حدث تغيير محتوى الشيت
    Private Sub Worksheet_Change(ByVal Target As Range) Rows("1:16").EntireRow.Hidden = 0 For r = 1 To 16 If Range("b" & r).Value = 0 Then Rows(r & ":" & r).EntireRow.Hidden = True End If Next r End Sub بالتوفيق للجميع
  20. أ / محمد صالح's post in تعديل تاريخ تلقائي was marked as the answer   
    يمكنك الاستفادة من هذه المواضيع
    https://www.officena.net/ib/search/?q=سجل غياب&quick=1&type=forums_topic&nodes=135&updated_after=any&sortby=relevancy&search_and_or=and
    في تنفيذ برنامجك
    وإذا وقفت في نقطة أو اثنتين يمكنك طرحها  في موضوع جديد
    مع توضيح المطلوب بمنتهى التفصيل
    بالتوفيق
  21. أ / محمد صالح's post in اريد كود لفتح شيت بناء على قيمة خلية was marked as the answer   
    كتابة اسم الشيت بها احتمالات للخطأ
    الأفضل اختيار الاسم من قائمة بأسماء الشيتات
    ساعتها يمكنك استخدام أمر فتح الشيت
    Sheets(Range("a1").Text).Activate بالتوفيق
  22. أ / محمد صالح's post in اضافة لليست فيو was marked as the answer   
    لعرض آخر 20 ضف يمكنك تغيير هذا السطر في الاجراء showdata
    For frw = 4 To last إلى
    For frw = last - 19 To last ولخذف الصف المطلوب
    Private Sub CommandButton1_Click() If MsgBox("Are you sure you want to delete this item?", vbYesNo, "Confirm Delete") = vbYes Then Rows(ListView1.SelectedItem.ListSubItems(1).Text + 3).EntireRow.Delete showdata End If MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  23. أ / محمد صالح's post in حذف علامة العملة من خلية أو عمود محدد؟ was marked as the answer   
    يمكن بطرق كثيرة
    اسهلها البحث والاستبدال CTRL+H
    ثم تكتب في مربع البحث العملة ومربع الاستبدال يترك فارغا
    ثم استبدال الكل replace all
    بالتوفيق 
     
  24. أ / محمد صالح's post in كود لتصدير عددة صفحات ل PDF was marked as the answer   
    إذا كان المطلوب تصدير جميع أوراق العمل الى ملف pdf واحد يمكنك استعمال هذا الكود
    Sub exportAllSheetToPdf() Dim sh As Worksheet, savpath As String For Each sh In ActiveWorkbook.Worksheets Worksheets(sh.Name).Select False Next sh savePath = "C:\Users\hp\Downloads\moh-selmy\power Q.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True Sheets(1).Select MsgBox "Done by mr-mas.com" End Sub وإذا كان المطلوب صفحات محددة يمكن استعمال هذا الكود مع كتابة اسماء الشيتات المطلوب تصديرها في المصفوفة
    Sub exportSomeSheetsToPdf() Dim savpath As String ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select savePath = "C:\Users\hp\Downloads\moh-selmy\power Q.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  25. أ / محمد صالح's post in تجميع الرقم الصحيح مع الكسر في خليتين was marked as the answer   
    تم حل هذا الموضوع قبل ذلك 
    إن شاء الله يفيدك هذا الموضوع
    مع فارق الألف درهم يساوي واحد دينار
    والمائة قرش تساوي واحد جنيه
    بالتوفيق 
     
×
×
  • اضف...

Important Information