اذهب الي المحتوي
أوفيسنا

أ / محمد صالح

أوفيسنا
  • Posts

    4472
  • تاريخ الانضمام

  • Days Won

    196

كل منشورات العضو أ / محمد صالح

  1. في خصائص النموذج * غير خاصية height إلى 500 مثلا * وخاصية scrollbars إلى 2 vertical * وخاصية scrollheight إلى الرقم الذي كان في خاصية height سيظهر شريط تمرير يمكنك من رؤية باقي أجزاء النموذج بالتوفيق
  2. يمكنك استعمال دالة الجمع المشروط sumif =SUMIF(A:A,D1,C:C) حيث d1 هي الخلية التي تحتوي على الاسم المراد جمع الأرقام المقابلة له بالتوفيق
  3. يا أخي الكريم كل هذا افتراض منا لأنك لم ترفع ملفا أو تحدد ما تحتاجه تمام التحديد من يعرف أساسيات البرمجة ب vba يعرف أنه يمكنك تحديد أي عدد من الأعمدة بكتابته بدلا من 10 ويعرف أيضا أنه لإخفاء الصفوف نغير كلمة columns إلى rows ويعرف أيضا أن cells تحتاج إلى رقم الصف ثم رقم العمود وتغيير مكان العداد n هو الذي يحدد اتجاه الإخفاء فلو كانت n في الرقم الثاني قهي تمثل العمود وإذا وضعتها في الرقم الأول فهي تمثل الصف وهذا الكود ربما يفيدك Sub hideblank() For n = 1 To 10 If Cells(1, n) = "" Then Columns(n).Hidden = True Next n For n = 1 To 10 If Cells(n, 1) = "" Then Rows(n).Hidden = True Next n End Sub Sub showblank() Columns("a:j").Hidden = False Rows("1:10").Hidden = False End Sub أرجو أن يكون الأمر قد اتضح وفي الأخير أرجو من الله أن يتقبل تطوعي هذا في حل مشكلات الآخرين سواء قدروا أو لم يقدروا
  4. مشكلة عدم جمع الوقت سببها اختلاف القيمة في الخلية عن قيمة الوقت لذلك يجب إولا إصلاح قيمة الخلية بهذا الاجراء Sub mas() For n = 2 To Cells(Rows.Count, 4).End(xlUp).Row Cells(n, 4).Value = Cells(n, 4).Text Next n End Sub ستجد بعدها خلية المجموع تعمل وللحصول على الإجمالي بالدقائق يمكنك تغيير تنسيق الخلية I2 إلى عام وكتابة المعادلة التالية =INT(SUM(D2:D233)*24*60) بالتوفيق
  5. دعنا نفترض إذا كان الصف الذي يخبر ان العمود فارغ هو الصف الأول وعدد الاعمدة 10 يمكنك استدعاء هذا الكود قبل الطباعة Sub hideblank() For n = 1 To 10 If Cells(1, n) = "" Then Columns(n).Hidden = True Next n End Sub وهذا الكود لإظهار الأعمدة المخفية Sub showblank() For n = 1 To 10 If Columns(n).Hidden Then Columns(n).Hidden = False Next n End Sub بالتوفيق
  6. ربما لأنك كتبت الشرط على سطرين يجب جعل السطرين باللون الأحمر في سطر واحد
  7. صمم صفحة البحث ثم اعد رفع الملف ليتم وضع معادلة البحث وبالتوفيق
  8. لاضافة الكود كلك يمين على اسم الشيت ثم view code ثم لصق هذا الكود بالتوفيق
  9. تم إضافة الشرطين شرط اسم الشيت يكون data وشرط قيمة الخلية لا تساوي "" أو " " يفضل فهم الكود أولا قبل تطبيقه في الملف حتى يمكنك تنفيذ هذه الشروط بمفردك بعد هذا Sub Add() If ActiveSheet.Name = "data" Then Dim FR For FR = 10 To 50 If Cells(FR, 3) <> "" And Cells(FR, 3) <> " " Then Cells(FR, 3) = Val(Cells(FR, 3)) + 1 End If Next MsgBox "plus 1 add to all" End If End Sub بالتوفيق
  10. هذه الرسالة لا تظهر إلا إذا كان المستخدم زائرا (لا يملك صلاحيات التحميل) أما بعد تسجيل الدخول فالأمر طبيعي جدا
  11. هذه الميزة جميلة لكنها تنطق عند حدوث تغيير في كل مكان وهذا مذعج جدا الكود يحدد الخلايا التي ينطقها البرنامج مثلا إذا أردنا نطق أي تعديل في خلايا العمود A نستعمل الكود التالي في حدث عن التغيير Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Dim v As Object Set v = CreateObject("SAPI.SpVoice") v.Speak Target.Text Set v = Nothing End If End Sub وأعمل حاليا على كود ينطق باللغة العربية ولكنه يحتاج إلى اتصال بالانترنت إن شاء الله أعرضه فيما بعد بالتوفيق
  12. تفضل أخي الكريم تم التعامل مع التواريخ على أنها نصوص وتحويل التاريخ الهجري المنسق كنص إلى تاريخ ميلادي إن شاء الله يكون هو المطلوب حركة تسديد القروض2.xlsm
  13. يمكنك عمل ذلك من خلال التنسيق الشرطي بمعادلة مثل =MONTH(D3)=MONTH(TODAY()) وتطبق على المدى C3:C14 بالتوفيق
  14. أنا ما عدلت على التواريخ أنا فقط ضبطت تنسيقها واعتبارها كتاريخ ومعادلتك في عمود تاريخ التحصيل كنتيجة لضرب تاريخ البداية في 29.5 مع عدد الأقساط ولا تنس أن الاكسل يتعامل مع التواريخ على أنها ميلادية ويعرض فقط التنسيق الهجري
  15. هذه هي التصفية بالمعادلات وتتم بمعادلات المصفوفات حدد النطاق B3:B16 ثم اكتب في شريط الصيغة المعادلة التالية =IFERROR(INDEX(entries!D:D,SMALL(IF(1001=entries!$C:$C,ROW(D:D),""),ROW()-2)),"") واضغط Ctrl+shift+enter لقبول المعادلة وكررر ذلك مع النطاقات C3:C16 =IFERROR(INDEX(entries!E:E,SMALL(IF(1001=entries!$C:$C,ROW(E:E),""),ROW()-2)),"") وأيضا مع النطاق D3:D16 =IFERROR(INDEX(entries!F:F,SMALL(IF(1001=entries!$C:$C,ROW(F:F),""),ROW()-2)),"") ملحوظة: هذه المعادلات لا يتم سحبها أفقيا أو رأسيا وإذا تم ينتج عنها بطء شديد للملف لذا يفضل تحديد النطاق الذي ستطبق عليه كله مرة واحدة بالتوفيق
  16. تفضل هذا ملفك بعد تعديل تنسيق التواريخ والمعادلات حركة تسديد القروض.xlsm
  17. يفترض أن تظهر عندك القوائم كاملة جرب الرابط الخاص بالشرح في مشاركتي السابقة https://support.google.com/docs/answer/1218656?hl=ar&ref_topic=9055295
  18. هذا ما أريده من بداية الكلام فربما لا يحسن أحدنا وصف ما يريد فيحكي بالتفصيل ما يريده فيحاول الجميع الفهم أنت تريد عمل توزيع المحصلين عشوائيا على شهور العام من 1 إلى 12 تفضل هذا ملفك بعد التعديل توزيع المحصلين عشوائيا.xlsm
  19. هل تم تسجيل الدخول بنفس حساب مالك الملف ؟ يعني الحساب الذي تم رفع الملف بواسطته
  20. يوجد ولكن باللغة الإنجليزية
  21. الحماية في جوجل شيت هي بنفس الطريقة من قائمة tools -- protect sheet أدوات حماية ورقة العمل وتعطي فيها صلاحيات لمستخدمين معينين للتعديل على الشيت كله أو بعض الخلايا وهذا رابط التعليمات الخاصة بجوجل شيت باللغة العربية https://support.google.com/docs/topic/9054603?hl=ar&ref_topic=1382883 وهذا رابط طريقة الحماية https://support.google.com/docs/answer/1218656?hl=ar&ref_topic=9055295 بالتوفيق
  22. لا يوجد حدث في الاكسل اسمه مرة كل شهر ربما تقصد في حدث عند فتح المصنف يعني في كل مرة يتم فتح الملف يتم استدعاء الكود ماذا إذا لم يتم فتح الملف في يوم 10 في الشهر أو كان يوم 10 يوم جمعة خلاصة الكلام ان المعادلات افضل في مثل هذه الحالات مع تعديل بسيط وهو أن يكون تاريخ الجهاز أكبر من أويساوي 10 يعني الأيام في الشهر من 10 إلى نهاية الشهر =IF(DAY(TODAY())>=10,$A3,"") بالتوفيق
  23. لم تفهم قصدي بمتى يتم تنفيذ الكود ؟ وبأي شيء يتم ربطه؟ أقصد هل تريد ربط الكود بزر مثلا عند الضغط عليه يتم التنفيذ وماذا إذا لم يضغط المستخدم على الزر في الموعد المحدد؟؟ وإذا ضغط المستخدم على الزر في يوم 13 في الشهر فلن يكتب الكود شيئا لأن التاريخ ليس 10 في الشهر ربما إذا اوضحت فكرة هذا الشيت وفائدة هذه العملية كتابة الاسم والتاريخ يكون لنا اقتراحات لتنفيذ المطلوب باحترافية اكثر
×
×
  • اضف...

Important Information