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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    191

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

  1. حتى يعمل أي كود على ويندوز 64بت نضع ptrsafe قبل function في الإعلان عن أي دالة من دالات النظام
  2. يمكنك أن تجعل مصدر عنصر التحكم =DSum("[dr]","tablee","[fdate] Between [Forms]![xx]![big] AND [Forms]![xx]![end]") بالتوفيق
  3. تفضل هذا ملفك بعد تعديل إجراء التسليم إلى ما يلي Sub Submit_Data() Dim iRow As Long, row As Long, sh As Worksheet If frmDataEntry.txtRowNumber.Value = "" Then Set sh = shDatabase iRow = sh.Range("A" & Rows.Count).End(xlUp).row + 1 Else If frmDataEntry.ComboBox7 = "Check OUT" Then Set sh = Sheet2 iRow = sh.Range("A" & Rows.Count).End(xlUp).row + 1 row = frmDataEntry.lstDatabase.List(frmDataEntry.lstDatabase.ListIndex, 0) + 1 ThisWorkbook.Sheets("Database").Rows(row).Delete Else Set sh = shDatabase iRow = frmDataEntry.txtRowNumber.Value End If End If With sh.Range("A" & iRow) .Offset(0, 0).Value = "=if(b" & iRow & "="""","""",Row()-1)" .Offset(0, 1).Value = frmDataEntry.TextBox1.Value .Offset(0, 2).Value = frmDataEntry.TextBox2.Value .Offset(0, 3).Value = frmDataEntry.TextBox3.Value .Offset(0, 4).Value = frmDataEntry.ComboBox1.Value .Offset(0, 5).Value = frmDataEntry.ComboBox2.Value .Offset(0, 6).Value = frmDataEntry.TextBox4.Value .Offset(0, 7).Value = frmDataEntry.TextBox5.Value .Offset(0, 8).Value = frmDataEntry.TextBox6.Value .Offset(0, 9).Value = frmDataEntry.TextBox7.Value .Offset(0, 10).Value = frmDataEntry.TextBox8.Value .Offset(0, 11).Value = frmDataEntry.ComboBox3.Value .Offset(0, 12).Value = frmDataEntry.ComboBox4.Value .Offset(0, 13).Value = frmDataEntry.ComboBox5.Value .Offset(0, 14).Value = frmDataEntry.ComboBox6.Value .Offset(0, 15).Value = frmDataEntry.TextBox9.Value .Offset(0, 16).Value = frmDataEntry.ComboBox7.Value End With If frmDataEntry.txtRowNumber.Value = "" Then MsgBox "Data Submitted Successfully!" Else MsgBox "Data updated Successfully!" End If Call Reset_Form Application.ScreenUpdating = True End Sub بالتوفيق program.xlsm
  4. بالنسبة للمطلوب الأول تحتاج فقط لملاءمة الطباعة في صفحة واحدة فقط وأسهل طريق لها في نافذة معاينة قبل الطباعة أو من اعداد الصفحة وبالنسبة للأرقام فهي فعلا يتم جلبها لصفحة الطباعة تلقائيا بسبب وجود معادلات البحث وبالنسبة للتاريخ في صفحة الطباعة فهو مضبوط وإذا كنت تقصد في صفحة إدخال البيانات فاستعمل في خلية اليوم =TEXT(TODAY(),"b2dd") وفي خلية الشهر =TEXT(TODAY(),"b2mm") وفي خلية العام =TEXT(TODAY(),"b2yyyy") بالتوفيق
  5. إن شاء الله يفيدك هذا الموضوع بالتوفيق
  6. إن شاء اللّه يفيدك هذا الموضوع بالتوفيق
  7. تفضل أخي الكريم هذا اللغز من أفضل الألغاز التي قابلتها حيث استمرت المحاولات فيه يومين والحمد لله تم إنجازه إن شاء الله هذا الكود يقوم باللازم Sub mas_generateMsg() Dim SumH(1000) As Variant, SumV(1000) As Variant For i = 17 To Sheet3.Cells(Rows.Count, 5).End(xlUp).Row msg = "": frst = True: fw = Sheet3.Cells(i, 8) msg = msg & "عند خروج الفاتوره رقم " & Sheet3.Cells(i, 5) & " بتاريخ " & Format(Sheet3.Cells(i, 6), "yyyy/mm/dd") For c = 17 To Sheet2.Cells(Rows.Count, 6).End(xlUp).Row lw = Sheet2.Cells(c, 9) lot = IIf(fw - SumH(i) > lw, lw, fw - SumH(i)) mylot = IIf(lw - SumV(c) > lot, lot, lw - SumV(c)) If mylot > 0 And frst Then frst = False: msg = msg & " تم استخدام خامات من اللوت رقم " & Sheet2.Cells(c, 6) & " بوزن " & mylot ElseIf mylot > 0 And Not frst Then msg = msg & " وأيضا من اللوت رقم " & Sheet2.Cells(c, 6) & " بوزن " & mylot End If SumV(c) = SumV(c) + mylot: SumH(i) = SumH(i) + mylot Next c Sheet4.Range("g" & i + 9) = msg Next i MsgBox "Done by mr-mas.com" End Sub نفعنا الله جميعا بما علمنا وعلمنا ما ينفعنا
  8. يمكنك استعمال هذا الكود في حدث عند التغيير Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 8 And Target.Row < 17 And Target.Column = 5 Then Dim C As Range, a As Boolean, b As Boolean For Each C In Range("E9:E16") If InStr(C.Value, "Positive") And (C.Row = 13 Or C.Row = 14) Then If Not a Then Range("C13").Value = "Titer250": a = True End If If InStr(C.Value, "+") Or InStr(C.Value, "yes") Then If Not b Then Range("C10").Value = "Positive": b = True End If Next C If Not a Then Range("C13").Value = "Nil" If Not b Then Range("C10").Value = "Negative" End If End Sub بالتوفيق
  9. حسب فهمي للمطلوب تم وضع معادلة تحسب المتبقي على التاريخ (إذا كان بعد تاريخ اليوم) وتنسيق المدة ب data bar بالتوفيق تنسيق المتبقي على تاريخ.xlsx
  10. يمكنك استعمال الدالة val لتحصل على القيمة Range("e" & lrow).Value = Val(TextBox1.Value) Range("f" & lrow).Value = Val(TextBox2.Value) Range("g" & lrow).Value = Val(TextBox3.Value) بالتوفيق
  11. حماية الشيت تهدف إلى حماية المعادلات والرسوم وتنسيقات الخلايا من التغيير بل وربما من مجرد التحديد وغيرها من الخصائص التي تخص الخلايا حماية المصنف تمنع المستخدم من تغيير اسماء الشيتات او ترتيبها او الإضافة أو الحذف وغيرها من الخصائص العامة للشيت بالتوفيق
  12. تفضل هذا التعديل تم إضافة زر حذف السجل المحدد لنموذج اذن الصرف أو الايرادات ينشط هذا الزر بعد تحديد السجل المطلوب إرجاعه يتم حذف هذا الصف في جدول المبيعات أو المشتريات وتحديث حركة جرد الأصناف دون التأثير على الرصيد الافتتاحي فلا يجب تغييره أثناء المدة وتم تعديل مصدر الصف في االليست بوكس وكومبو بوكس الاصناف فلا تظهر غير الصفوف الموجودة فعلا وليس 1000 صف معظمها فارغ بالتوفيق الكافتيريا.xlsm
  13. المطلوب غير واضح لي هل تقصد حذف سجل معين من سجلات المبيعات وإعادة رصيد الصنف إلى ما كان عليه قبل عملية البيع ؟؟؟
  14. لا يوجد طريقة تجعل التذييل يظهر مباشرةً بعد آخر صف في الجدول إلا إذا اعتبرنا تعديل اعدادات الصفحة لتتناسب مع عدد الصفحات بدون هذا السطر حلا مناسبا فمثلا ظهرت السجلات في صفحتين وسجل واحد او اثنين في الصفحة الثالثة يتم ضبط اعدادات الصفحة page setup في جزء fit to صفحة 1 بالعرض و 2 بالطول بالتوفيق
  15. هل هذا بعد تنفيذ الحلين الموجودين في المشاركات؟ الحل الأول الحل الثاني
  16. حسب فهمي للمطلوب يمكنك إضافة هذا الشرط لحدث عن تغير التحديد If Target.Column > 6 And Target.Column < 14 And Target.Row > 2 Then For Each c In Range("f" & Target.Row & ":m" & Target.Row) If Not c.Locked Then MsgBox "يرجى إنهاء أعمال " & Cells(1, c.Column) & " أولا": Exit For Next c End If للعلم يتم جلب قيمة الصف الأول في العمود المسموح بتعديله قبل كلمة أولا بالتوفيق
  17. بعد فحص ملفك المشكلة ليست في كود الترحيل المشكلة في كود عرض الوقت على النموذج جرب هذا الكود في حدث تنشيط النموذج Private Sub UserForm_Activate() VBA.Calendar = vbCalHijri L2.Caption = "التاريخ الهجرى :" & Format(Date, "ddd dd mmm yyyy") VBA.Calendar = vbCalGreg L1.Caption = "التاريخ :" & Format(Date, "ddd dd mmm yyyy") Do L3.Caption = Format(Now, "hh:nn:ss AM/PM") DoEvents Loop End Sub بالتوفيق
  18. ربما يوجد وظيفة إضافية add-in لها هذا التأثير لمعرفة addins من تبويب file ثم options وربما يكون السبب برنامج تسجيل الشاشة الذي تستخدمه الاحتمالات كثيرة
  19. لقد غيرت نوع التقويم في اكسل الي هجري بهذا السطر ولإعادة التقويم للميلادي نستخدم هذا السطر VBA.Calendar = vbCalGreg بالتوفيق
  20. يبدو أن حضرتك لم تقرأ هذا من قبل يجب وضع وصف دقيق ومفصل للمشكلة (تم تعديل الموضوع وإضافة الشرح الموجود بالملف) على العموم هذا ملفك بعد التعديل بملاحظة الجداول وجدت أسماءها الجدول20 والجدول21 وهكذا فتم استعمال اسم الجدول في معادلة البحث بالتوفيق بحث فى عدة جداول برقم.xlsx
  21. جميعا بإذن الله تجده في الرابط الموجود في مشاركتي السابقة البرنامج بسيط ولا يحتاج لشرح ومن المؤكد لو بحثت عنه في يوتيوب أن تجد شروحات كثيرة
  22. أنا شخصيا رأيت في xampp مشكلات كثيرة مما جعلني أستعمل Unform Server منذ أكثر من عشرة أعوام بالتوفيق
×
×
  • اضف...

Important Information