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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    191

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

  1. حضرتك لا تعدل الشيت التعديل في اسم عنصر التحكم تكست بوكس الذي في النموذج فقط تجدد العنصر وفي جزء الخصائص تكتب الاسم الجديد في الخاصية name هذا إذا كنت ترغب في اختصار الكود
  2. مرة أخرى يجب تسمية العناصر بنفس ترنيب الشيت عنصر العمود f يكون اسمه txt6 عنصر العمود g يكون اسمه txt7 عنصر العمود h يكون اسمه txt8 وهكذا الى نهاية الخلايا التي تتم ترحيلها
  3. مساهمة من العبد لله لإثراء الموضوع تم الاستغناء عن جدول قيم الحروف والزر في النموذج وتم استعمال دالة بسيطة Public Function CharVal(SearchStr) As Long Dim i As Long, myval As Long If Not IsNull(SearchStr) Then Dim d As Object: Set d = CreateObject("Scripting.Dictionary"): d.Add "أ", 1: d.Add "ب", 2: d.Add "ج", 3: d.Add "د", 4: d.Add "ه", 5: d.Add "و", 6: d.Add "ز", 7: d.Add "ح", 8: d.Add "ط", 9: d.Add "ي", 10: d.Add "ك", 20: d.Add "ل", 30: d.Add "م", 40: d.Add "ن", 50: d.Add "س", 60: d.Add "ع", 70: d.Add "ف", 80: d.Add "ص", 90: d.Add "ق", 100: d.Add "ر", 200: d.Add "ش", 300: d.Add "ت", 400: d.Add "ث", 500: d.Add "خ", 600: d.Add "ذ", 700: d.Add "ض", 800: d.Add "ظ", 900: d.Add "غ", 1000: d.Add "ا", 1: d.Add "إ", 1: d.Add "آ", 1: d.Add "ء", 1: d.Add "ى", 10: d.Add "ئ", 10: d.Add "ؤ", 6: d.Add "ة", 5: d.Add " ", 0 For i = 1 To Len(SearchStr) myval = myval + d(Mid(SearchStr, i, 1)) Next i End If CharVal = myval End Function يتم استدعاؤها بعد تحديث مربع النص Private Sub text1_AfterUpdate() Me.text3.Value = CharVal(Me.text1.Value) End Sub تحياتي للجميع mas_charval.mdb
  4. يمكنك دمج المعادلتين معا ضع هذه المعادلة في الخلية H3 =IF(COUNTIF($A$3:$A3,$A3)>1,"",IFERROR(MODE(IF($A$3:$A$900=$A3,$F$3:$F$900)),INT(HARMEAN(IF($A$3:$A$900=$A3,$F$3:$F$900))))) مع الضغط على ctrl+shift+enter بالتوفيق
  5. ياريت توضح اكتر ايه الحطأ بالضبط الرصيد المتاح هو ناتج اضافة الوارد على رصيد اول المدة وطرح المنصرف منهما
  6. أخي الكريم الكود في التعديل الأخير لا يذهب للشيت ليدجر لو لاحظت تم حذف السطر الخاص ب ThisWorkbook.Sheets("ليدجر").Activate ناتي للخطأ الذي ظهر في اول سطر في التعديل الجديد هل قمت بإعادة تسمية العناصر على النموذج ؟ حوالي 110 عنصر يتم اعادة تسميتهم ب txt6 & txt7 & txt8 وهكذا حتى txt116 لا أعتقد أنك قمت بهذه الخطوة
  7. كان يمكنك التوصل لها بمفردك لانها عبارة عن دمج نص مع معادلة باستخدام & تفضل هذا ملفك بعد المطلوب الاخير لاحظ معادلة التنسيق الشرطي في الحليتين بالتوفيق UBIED.xlsx
  8. اعتقد كل هذا موجود في معادلة العمود C ومعادلة التنسيق الشرطي له التي تم تعديلها في الملف السابق هل تعديل معادلتك وشروط التنسيق الشرطي الخاص بك مازالت لا تفي بالغرض؟؟؟
  9. بعد اذن الجميع طالما يحتاج الأمر إلى إصافة شيتات فهذا يحتاج إلى الكود تم وضع معادلة الرصيد تصلح لجميع الشيتات تم وضع اجراء لمسح محتويات الشيت الاول ونسخه بعدد ايام الشهر الحالي بالتوفيق اضافة شيتات بعدد ايام الشهر.xlsb
  10. تفضل هذا ملفك بعد تعديل معادلتك والتنسيق الشرطي واضافة حلي السابق مع التعديل ليراعي الخليتين الفارغتين بالتوفيق UBIED.xlsx
  11. نموذج كارت الصنف يعرض مخزن الاضافة والرصيد المتاح والمنصرف والوارد ورقم الاذن والتاريخ هل تقصد الوحدة الخاصة بالصنف العدد؟ يوجد في البرنامج كله اعتماد على كود الصنف واسم الصنف ورصيده يعني عدد وحداته اما اذا كنت تقصد انواع فرعية من الصنف فيمكنك اضافتها في الاصناف اذا كنت من صمم البرنامج ستعرف ان جرد المخزن يقوم بحساب 7 خانات لحوالي 5200 صنف وهذا شيء طبيعي ان ياخذ وقتا في معالجته
  12. اقتراحي لاختصار وتسريع كود الترحيل من الفورم للشيت هو ان تقوم بتسمية عناصر التحكم في النموذج بنفس ترتيب الشيت فمثلا العمود F هو العمود رقم 6 نسمي مربع النص الذي سيتم ترحيله للعمود F ب txt6 وهكذا مع باقي العناصر جتى txt116 وهو الذي سيتم ترحيله للعمود DL واستعمال هذا الكود البسيط للترحيل ومسح محتويات النموذج Private Sub CommandButton6_Click() answer = MsgBox ("هل أنت متأكد من تعديل البيانات", vbQuestion + vbYesNo + vbDefaultButton2, "تأكيد التعديل") If answer = vbYes Then Dim rng1 As Range, str_search As String, row_number As Long,n as long str_search = Txt3.Value Set rng1 = Sheets("ليدجر").Range("E:E").Find(str_search, , xlValues, xlWhole) If Not rng1 Is Nothing Then row_number = rng1.Row Application.ScreenUpdating = False For n = 6 To 116 Sheets("ليدجر").Cells(row_number, n).Value = Me.Controls("txt" & n).Value Next n For n = 6 To 116 Me.Controls("txt" & n).Value = "" Next n Application.ScreenUpdating = True End If End If MsgBox "تم التعديل بنجاح" End Sub بالتوفيق
  13. من الواضح أن البرنامج تم تصميمه وتحويله الي accde باكسس 2016 او 2019
  14. طالما ان صاحب الاستفسار مشغول عن استفساره هذا رأيي في تنفيذ المطلوب بكود vba تم اضافة شكل ليتم كتاة رقم الاستمارة فيه ويمكن تصميم الاستمارة كما يشاء فقط يحتاج.الي استدعاء الماكرو باسم printcur ويمكن ربطه بزر او شكل طباعة رقم الاستمارة.docm
  15. ماذا يظهر لك عند تشغيل الملف يفضل ارفاق صورة
  16. تفضل اخي الكريم تم تعديل النموذج a1 وخصوصا زر توزيع المبلغ وتم تعديل النموذج a2 في مصدره ومصادر مربعات النصوص وتم تعديل جدول t_m الكود في زر التوزيع يراعي المبلغ المتبقي بعد عدد الاقساط اذا كان اكبر من قيمة القسط او لا لاحظ توزيع القسط والفائدة واجمالي القسط في السجل الأخير بالتوفيق ‫الأقساط ‫‬1.mdb
  17. البرنامج يعمل عندي بدون اي مشاكل لان الويندوز والاوفيس 64bit
  18. هل تعني انك كنت تعمل على قاعدة بيانات مصممة باوفيس 2010 ثم قمت بالغاء تثبيت اوفيس 2010 وقمت بتثبيت اوفيس 2019 على نفس نسخة الويندوز ونفس ظروف عمل البرنامج على الاصدار القديم ولم يعمل علي الجديد؟؟؟؟؟؟ صعب جدا الاحتمال ده ولكن لكشف الأخطاء يمكنك الدخول إلى نافذة vba من قائمة debug اختر compile لنرى ما الخطأ الذي يظهر معك
  19. جميل جدا استعمال دمج المراسلات لكن يمكن حلها بالووورد فقط المهم ان يرد صاحب الاستفسار
  20. الموضوع لا يخص الاوفيس وحده من الممكن أن يتعلق بنسخة الويندوز ربما تكون اسماء الاجراءات او العناصر باللغة العربية والويندوز لم يتم ضبط اللغة العربية ك Unicode language من لوحة التحكم متى نقول ان البرنامج الذي صمم باوفيس 2010 لم يعمل على اوفيس 2016 اذا تم الغاء تثبيت 2010 وتم تثبيت 2016 علي،نفس الويندوز ونفس ظروف عمل الاصدار السابق
  21. * كل البرامج التي تصمم بالاصدارات القديمة تعمل على الإصدارات الأحدث ولكن العكس غير صحيح * في رأيي الشخصي الأحدث هو الأفضل لانه يتم فيه حل الكثير من المشكلات السابقة بسهولة * اما بالنسبة لموضوع النواة فالأعلى في القدرات 64بت والله اعلم
  22. يمكن استعمال معادلة if إذا كانت الخلية فارغة تكون قيمة المعادلة فارغة يمكن وضع هذه المعادلة في i5 =IF(A5="", "", A5) ثم سحب المعادلة افقيا وراسيا بالتوفيق
  23. كل شيء ممكن لما نفكر فيه بطريقة سليمة جرب هذه المعادلة في الخلية B2 =MID(A2, 1,FIND(CHAR(10),A2)-1) والمعادلة التالية في الخلية C2 =MID(A2, FIND(CHAR(10),A2)+1, 10) بالتوفيق
  24. هو ممكن لكن سيكون الشكل غير مقبول نهائيا لعمل ذلك يتم نسخ النطاق من A1:G20 ثم لصقه ابتداء من الخلية I1 مع تعديل منطقة الطباعة الى A1:O20 مرفق ملفك وبه التعديل راسي وافقي بالتوفيق كشفين في ورقة واحدة.xlsx
×
×
  • اضف...

Important Information