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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    185

Community Answers

  1. أ / محمد صالح's post in حساب مدة الخدمة was marked as the answer   
    جرب استعمال هذه المعادلة في الخلية G6
    =IF(B6="","",IF(DATEDIF(D6,E6,"md")>=30,IF(DATEDIF(D6,E6,"ym")+1=12,0,DATEDIF(D6,E6,"ym")+1),DATEDIF(D6,E6,"ym"))) وهذه في الخلية F6
    =IF(B6="","",IF(DATEDIF(D6,E6,"ym")+1=12,1,0))+DATEDIF(D6,E6,"y") بالتوفيق
  2. أ / محمد صالح's post in تعبئة الخلايا الفارغة في الإكسيل was marked as the answer   
    الكود السابق يملأ الخلايا الفارغة كلها بدون شروط
    لذا يلزم إضافة شرط
    يمكنك استعمال هذا الاجراء
    تم إضافة شرط أن تكون خلية العمود B في نفس الصف غير فارغة
    Sub masFillBlanks() Dim rng As Range For Each rng In Range("H11:AT75") If Range("b" & rng.Row) <> "" And IsEmpty(rng) Then rng.Value = "-" Next MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء بطريقة أخرى
    Sub masFillBlanks2() Dim arr, r As Long, c As Long arr = Range("H11:AT75").Value For r = LBound(arr, 1) To UBound(arr, 1) If Range("b" & r + 10) <> "" Then For c = LBound(arr, 2) To UBound(arr, 2) If IsEmpty(arr(r, c)) Then Cells(r + 10, c + 7) = "-" Next c End If Next r MsgBox "Done by mr-mas.com" End Sub وأنصح بعدم وجود صفوف أو أعمدة زيادة مثل ما بعد الصف 47 وlما بعد العمود AN
    بالتوفيق
  3. أ / محمد صالح's post in إدراج صورة عن طريق كتابة رقمها was marked as the answer   
    المنتدى به كنوز رائعة
    تحتاج فقط من يبحث عنها
    https://www.officena.net/ib/search/?q=صورة الموظف&quick=1&type=forums_topic&nodes=135&search_and_or=and
    بالتوفيق
  4. أ / محمد صالح's post in ترحيل ارقام من شيت الى شيت على اساس رقم المستند was marked as the answer   
    أخي الكريم صاحب الموضوع
    اول خطوة لتعديل الكود فهمه وفهم متغيراته 
    والكود القديم يقوم بنقل قيمة العمود J إلى العمود 19 بعد العمود الأول في شيت البيانات
    والمطلوب إضافة نفس الكود عند تعديل العمود G ويتم نقله إلى العمود 16 بعد العمود الأول في شيت البيانات
    لذلك يصبح الكود بعد التعديل
    Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim ws As Worksheet Set ws = Sheets("البيانات") Dim c, x Application.ScreenUpdating = False If Not Intersect(Target, Range("g8:g1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 16) = Target Ebd If If Not Intersect(Target, Range("j8:j1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 19) = Target End If Application.ScreenUpdating = True End Sub لاحظ تم تكرار سطور الشرط للعمودين g و j مع تغيير رقم العمود المرحل إليه مرة 19 ومرة 16
    بالتوفيق
  5. أ / محمد صالح's post in ترحيل ارقام من شيت الى شيت على اساس رقم المستند was marked as the answer   
    أخي الكريم صاحب الموضوع
    اول خطوة لتعديل الكود فهمه وفهم متغيراته 
    والكود القديم يقوم بنقل قيمة العمود J إلى العمود 19 بعد العمود الأول في شيت البيانات
    والمطلوب إضافة نفس الكود عند تعديل العمود G ويتم نقله إلى العمود 16 بعد العمود الأول في شيت البيانات
    لذلك يصبح الكود بعد التعديل
    Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim ws As Worksheet Set ws = Sheets("البيانات") Dim c, x Application.ScreenUpdating = False If Not Intersect(Target, Range("g8:g1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 16) = Target Ebd If If Not Intersect(Target, Range("j8:j1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 19) = Target End If Application.ScreenUpdating = True End Sub لاحظ تم تكرار سطور الشرط للعمودين g و j مع تغيير رقم العمود المرحل إليه مرة 19 ومرة 16
    بالتوفيق
  6. أ / محمد صالح's post in نقل القيمة الموجودة فى خلية بمجرد تحديدها فى نطاق معين was marked as the answer   
    يفترض أنه تم حل شيء شبيه بهذا لك قبل ذلك
    فأين محاولتك والتي تدل على الاستفادة مما سبق تعلمه؟
  7. أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer   
    يمكنك استخدام برنامج aopr
    بالبحث عن هذه الحروف في جوجل
    بالتوفيق
  8. أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer   
    يمكنك استخدام برنامج aopr
    بالبحث عن هذه الحروف في جوجل
    بالتوفيق
  9. أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer   
    يمكنك استخدام برنامج aopr
    بالبحث عن هذه الحروف في جوجل
    بالتوفيق
  10. أ / محمد صالح's post in مساعدة فى الترحيل was marked as the answer   
    بعد إذن أخي محي الدين
    جرب تغيير الاجراء إلى هذا الكود
    هذا باستعمال الاسم البرمجي للشيت ودالة cells
    Sub test() Dim a, col As Long a = Range(Worksheet____37.Cells(10, 8), Worksheet____37.Cells(39, 8)).Value col = Application.Match(Worksheet____37.Cells(9, 8), Worksheet____60.Range("a9:m9"), 0) Worksheet____60.Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء باسم الشيت والنطاق
    Sub mrmas() Dim a, col As Long a = Sheets("طباعة حافظة التقارير").Range("h10:h39").Value col = Application.Match(Sheets("طباعة حافظة التقارير").Range("h9"), Sheets("ارشيف التقارير").Range("a9:m9"), 0) Sheets("ارشيف التقارير").Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  11. أ / محمد صالح's post in جمع القروش والجنيهات was marked as the answer   
    وهذا رابط للبحث
    Showing results for 'القروش الجنيهات' in content posted in منتدى الاكسيل Excel . - أوفيسنا (officena.net)
    بالتوفيق
  12. أ / محمد صالح's post in تعبئة تلقائية من ملف اكسل الى موقع was marked as the answer   
    الكود لا يضر الموقع ولا يظهر عندهم 
    الكود يقوم بما يقوم به المستخدم ولكن بصورة آلية 
    تحتاج قبل البدء معرفة ID حقل اسم المستخدم وكذلك كلمة المرور وكذلك زر الدخول 
    وبعدها ID لكل حقل سيتم تعبئته من الشيت وكل زر سيتم الضغط عليه 
    لمعرفة ID لعنصر نضغط بزر الفارة الأيمن على العنصر في المتصفح ونختار inspect element 
    وبعدها نستخدم كود انشاء نسخة من كائن متصفح انترنت اكسبلورر بمثل هذا الكود 
    Dim IE As Object, site as String Set IE = CreateObject("InternetExplorer.Application") site = "https://www.example.com/" With IE .Visible = True .navigate site Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop End With IE.Document.getElementById("username").Value = range("aa1").value IE.Document.getElementById("password").Value = range("ab1").value IE.Document.getElementById("login_go").Click Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop وهكذا في كتابة قيم الحقول من الشيت نستعمل حلقة تكرارية مثل for - next
    وهكذا الضغط على اي زر لحفظ البيانات مثلا
    بالتوفيق 
  13. أ / محمد صالح's post in مطلوب سحب الاجازات وتجميها طبقا للشهر was marked as the answer   
    كل عام وأنتم جميعا بكل خير
    يمكنك استعمال هذه المعادلة في الخلية C2 مع سحب المعادلة يسارا ثم أسفل
    =SUMIFS('Data '!$E:$E,'Data '!$A:$A,$A2,'Data '!$C:$C,">="&C$1,'Data '!$C:$C,"<="&EOMONTH(C$1,0)) مع ضرورة حذف المسافة في نهاية اسم الشيت data حتى لا تتسبب في مشكلات بعد ذلك
    بالتوفيق
  14. أ / محمد صالح's post in حساب عدد ايام الحضور والغياب فى شيت was marked as the answer   
    عليكم اسلام ورحمة الله وبركاته
    يمكنك استعمال دالة العد بشروط countifs
    هذه المعادلة في Y2 لعد ايام الحضور
    =COUNTIFS(B:B,AA3,C:C,Z3,F:F,"حضور") وهذه في X2 لعد ايام الغياب
    =COUNTIFS(B:B,AA3,C:C,Z3,F:F,"غياب") مع سحب المعادلة لأسفل
    بالتوفيق
  15. أ / محمد صالح's post in برجاء التعديل على كود البحث التالي was marked as the answer   
    تفضل
    تمت اعادة هيكلة جزء البحث في النموذج 
    بالتوفيق 
    التعديل على كود البحث.xlsm
  16. أ / محمد صالح's post in جدول بيانات غوغل درايف was marked as the answer   
    يمكن رفع الملف على OneDrive 
    ومشاركة الرابط مع الجميع 
    مع فتح الملف بأوفيس 2016 وما بعده
    بالتوفيق 
  17. أ / محمد صالح's post in مشكلة فى محرر الأكواد was marked as the answer   
    ربما يكون أحد غير إعدادات خطوط محرر الأكواد
    من قائمة tools اختر options ثم في تبويب editor format

    الخط الافتراضي courier new وحجم الخط 12 واختر اللون ولون الخلفية المفضل لديك
    بالتوفيق
  18. أ / محمد صالح's post in جمع الصفوف ما عدا الخلايا المظللة بالدائرة الحمراء was marked as the answer   
    أعتقد أنه لا يوجد في اكسل جمع للخلايا التي ليس عليها دائرة 
    وإنما يوجد جمع بشرط / بشروط 
    وهي عكس شروط وضع الدوائر مثلا جمع الخلايا التي تساوي أو تزيد عن النهاية الصغرى للمادة 
    فمثلا إذا وضعت في الصف 3 النهاية الكبرى لكل مادة سواء كانت 100 أو 150 ثم كتبت هذه المعادلة في الخلية AA9
    =SUM(IF(E9:Z9>$E$3:$Z$3/2,E9:Z9,0)) ستحصل على مجموع الخلايا الأكبر من نصف النهاية الكبرى
    ويمكن نسخ الخلية بعد وضع المعادلة إلى جميع خلايا المجموع الكلي
    بالتوفيق 
  19. أ / محمد صالح's post in ترحيل الاسماء والتواريخ المكررة الى شيت اخر بدون تكرار was marked as the answer   
    يمكنك حذف الخلية الصفراء المدمجة أولا
    ثم استعمال هذا الكود وربطه بزر أمر أو شكل
    Sub tar7eel() Dim r As Long, f As Long Hoja2.Range("a2:b" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents Hoja2.Range("d2:d" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents f = 2 For r = 2 To Hoja1.Cells(Rows.Count, 1).End(3).Row myParent = Hoja1.Range("j" & r): newparent = Hoja1.Range("j" & r + 1) If myParent <> newparent Then Hoja2.Range("a" & f) = f - 1 Hoja2.Range("b" & f) = Hoja1.Range("j" & r) Hoja2.Range("d" & f) = Hoja1.Range("d" & r) f = f + 1 End If Next r MsgBox "Done by mr-mas.com" End Sub ملحوظة: تم استعمال الاسم البرمجي للشيتات وهو Hoja1 و Hoja2 وهو الاسم الموجود في محرر vba وليس الاسم الذي يظهر في تبويب الشيتات
    بالتوفيق
  20. أ / محمد صالح's post in ضبط وربط جميع صفحات الملف ببعضها was marked as the answer   
    المطلوب غير واضح لي بصورة كافية
    لكني أتوقع أن المطلوب في الشيت الرابع عمل بحث عن رقم العضو وجلب بياناته
    أفضل من تكرار نفس التصميم بعدد الأعضاء
    راجع هذا الملف ربما يكون المطلوب
    فقط يلزمك كتابة رقم العضو في الخلية J2
    ولا أدري ما المطلوب من الشيت الثالث 
    بالتوفيق
    2023.xlsx
  21. أ / محمد صالح's post in فتح ملف اكسل محمي was marked as the answer   
    المطلوب غير واضح لي بصورة كافية 
    ربما لو ارفقت الملف 
    مع توضيح المطلوب بمنتهى التفصيل 
    تنتهي المشكلة بإذن الله 
  22. أ / محمد صالح's post in المساعده في تلوين بالتنسيق الشرطي was marked as the answer   
    لعمل ذلك يمكنك:
    تحديد الخلايا B14:D14
    من تبويب home نضغط على conditional formatting ثم new role
    ثم نختار الاختيار الثاني Format only cells that contain
    ثم Equal to ثم نكتب أو نختار B13
    ثم نضغط على format لضبط لون الخلفية والنص المطلوب للخلية المميزة
    ثم OK
    مع مراعاة تطابق الأسماء في الخلايا مع الأسماء في القائمة
    بالتوفيق
    تلوين.xlsx
  23. أ / محمد صالح's post in كود Vba (Conditional Formatting) احتاج لاختصاره والتعديل عليه was marked as the answer   
    كل عام وأنتم بخير
    التنسيق الشرطي يتم إنشاؤه مرة واخدة فقط ويستمر عمله إلى أن يحذف
    ولتطبيق هذا الكود على أي شيت يمكنك تحديده ثم تنفيذ هذا الكود عليه مرة واحدة فقط
    سواء يدويا أو بكود في إجراء آخر مثل
    sub mrmas sheets("sheetname").select call CFext() sheets("sheetname2").select call CFext() sheets("sheetname3").select call CFext() end sub بالتوفيق
  24. أ / محمد صالح's post in تنسيق اتجاه التاريخ مع النص بنفس الخلية بالاكسل was marked as the answer   
    أبسط حل
    أن تعكس التاريخ بكتابة العام ثم الشهر ثم اليوم
    وإذا كنت تأخذ التاريخ من خلية أخرى
    فيمكن استعمال هذه المعادلة
    ="كتابنا ذي الرقم (1254) في "&TEXT(C4,"yyyy/mm/dd") على اعتبار أن خلية التاريخ هي C4
    بالتوفيق
  25. أ / محمد صالح's post in ماذا بعد تغيير جوجل الكودات was marked as the answer   
    أخي الكريم
    الحمد لله لي السبق في هذا المجال الترجمة بالكود في vba
    وغيرت الكود مرة في 2017 ومرة في 2019 ولم أهتم بعدها بهذه الطريقة
    وبالنسبة لملفكم
    بالنسبة للرابط المستععمل قي الكود فهو خاص بنسخة الموبايل
    https://translate.google.com/m?sl=auto&tl=ar&hl=en-US&q=Good+morning
    ولا يوجد به زر للنطق والكود يستعمل زر له كلاس
    .Document.QuerySelector(".VfPpkd-Bz112c-kBDsod-OWXEXe-IT5dJd").Click وهو غير موجود
    وبالنسبة لطلب صفحة الترجمة الكاملة
    فالنطق يكون غير مدعوم في متصفح انترنت اكسبلورر المستخدم في الكود
    Voice output isn't supported on this browser
    خلاصة الكلام: أن هذه الطريقة لنطق النص أصبحت غير متاحة
    وكنت قد أوضحت أنه يوجد طريقة أخرى أستعملها في موقعي الشخصي mr-mas.com
    ولكن لم أحولها إلى vba لانشغالي هذه الفترة ولاني مستاء جدا من نشر أكوادي باسم غيري فلا يوجد في مصر والعالم العربي ما يسمى بالأمانة العلمية
    ربما لاحقا أحول هذه الطريقة إلى vba
    بالتوفيق
×
×
  • اضف...

Important Information