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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    191

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

  1. للأسف أخي الكريم طريقتك تقارن بين قيمة الخلية والخلية b4 فقط ولا تقارن بين الخلية في العمود A وخلية العمود b التي تجاورها
  2. بالنسبة لكود معاينة الطباعة ActiveSheet.PrintPreview وبالنسبة لكود طباعة الشهادات دفعة واحدة فهذا يتوقف على طريقة جلبك للبيانات من شيت البيانات الأساسية وبعد فحص ملفك لم أجد أي طريقة محددة لجلب بيانات الشهادات لذا ربما تفيدك هذه الموضوعات في معرفة طرق جلب البيانات حسب المسلسل أو رقم الجلوس أو الاسم https://www.officena.net/ib/search/?q=طباعة الشهادات&quick=1&type=forums_topic&nodes=135&search_and_or=and بالتوفيق
  3. يمكنك استعمال هذه المعادلة في الخلية D6 مع نسخ المعادلة يمينا لنهاية الشهر =IFERROR(IF(OR(COUNT($C5:C5)<1,D5-MAX($C5:C5)<0),"",D5-MAX($C5:C5)),"") ويمكن نسخ الخلية D6 إلى D8 لنسخ المعادلة وهذا ملفك بعد التعديل بالتوفيق كشف الفواتير للمركبات - بوقصي 9-2021 تجارب.xlsm
  4. هذا المطلوب لا يتم بالمعادلات لابد من تدخل جراحي (vba) يمكنك استعمال هذا الكود في حدث عند التغيير Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 3 And Target.Column >= 1 And Target.Column <= 3 And Evaluate("=counta(a3:d3)") = 4 Then lr1 = Cells(Rows.Count, 1).End(3).Row + 1 lr1 = IIf(lr1 < 4, 4, lr1) lr2 = Cells(Rows.Count, 12).End(3).Row + 1 Range("a" & lr1 & ":d" & lr1).Value = Range("a3:d3").Value Range("l" & lr2 & ":o" & lr2).Value = Range("a3:d3").Value Range("a3:c3").ClearContents End If End Sub وهذا ملفك بعد إضافة الكود وتغيير الامتداد 555.xlsb
  5. عليكم السلام و رحمة الله وبركاته الجزء الثاني من المطلوب غير منطقي حيث سيظل الكود في حلقة من الأحداث لا تنتهي فمثلا تم تغيير الدور الاول إلى الثالث فيفترض من الكود أن يبحث عن موظف الدور الثالث ويضعه في الدور الأول وحينها يتم استدعاء كود حدث التغيير لأن خلية الدور الثالث تغيرت في العمود E وساعتها يبدأ في البحث وهكدا والحل في هذه المشكلة كتابة التغيير المطلوب في العمود G مثلا بالكود ويتم كتابته مرة أخرى يدويا في العمود E مع تعديل حدث التغيير إلى هذا الكود Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("e8:e100")) Is Nothing Then Exit Sub lr = Range("h" & Rows.Count).End(xlUp).Row + 1 Cells(lr, "h") = Target.Offset(0, -2) Cells(lr, "i") = [k1] Cells(lr, "j") = Target.Value lr1 = Range("e" & Rows.Count).End(xlUp).Row If Target.Offset(0, 2) = "" Then For n = 8 To lr1 If n <> Target.Row And Cells(n, 5) = Target.Value And Cells(n, 4) = Target.Offset(0, -1) And Cells(n, 6) <> "راحة" Then Cells(n, 7) = [k1] Next n Else Target.Offset(0, 2) = "" End If End Sub بالتوفيق
  6. يمكنك استعمال هذه المعادلة في التنسيق الشرطي =AND(A4<>"",A4<B4) وتقوم باختيار التعبئة أو اللون المرغوب ويتم تطبيقها على. العمود A مثلا أو أي خلايا منه وإذا أردت تمييز الخلايا التي تساوي المتوقع أو أكبر يمكن استعمال هذه المعادلة =AND(A4<>"",A4>=B4) بالتوفيق
  7. لإضافة دالة معرفة udf نفتح نافذة محرر vba بالضغط alt+f11 من قائمة insert نختار module نلصق هذا الكود واستخدامها في اكسل مثل استخدام ifs ولكن نكتب masifs بالتوفيق
  8. الأسهل تصدير الملف بصيغة xlsx أو csv من خادم قاعدة البيانات ويمكن استعمال هذه الصفحة لتحويل الملف إلى اكسل https://www.convertcsv.com/sql-to-csv.htm بالتوفيق
  9. يمكنك استعمال هذه الدالة المعرفة Public Function MasIfs(ParamArray args() As Variant) As Variant Dim i As Integer Do Until CBool(args(i)) Or (i >= UBound(args)) i = i + 2 Loop If i < UBound(args) Then MasIfs = args(i + 1) End Function بالتوفيق
  10. الأفضل من وجهة النظر البرمجية أن تبقى هذه صفحة بيانات وتنشئ صفحة جديدة يتم عرض نتائج أول 26 صفا ثم ثاني 26 صفا بكتابة رقم الصفحة في خلية ومعادلات البحث تجلب لك النتائج مثل هذا الموضوع بالتوفيق
  11. أخي الكريم بالنسبة لموضوع الاستعداد للكتابة فتحديد الخلية المشار إليها سابقا مني تكفي وبالنسبة لموضوع setfocus أو focus فهذه تستخدم مع عناصر التحكم في النموذج وليس مع الخلايا في الشيت
  12. الموضوع ممكن باستخدام دوال الويندوز لكن إذا سمحت لي ما الفائدة العملية من إجراء مثل هذا؟ نقل مؤشر الفارة فوق خلية معينة
  13. هل تقصد نقل التركيز ؟ يعني المستطيل الغامق حول الخلية النشطة أم فعلا تقصد سهم مؤشر الفارة بغض النظر عن الخلية المحددة إذا كان المقصود الأول فيمكنك استعمال Range("a1").select حيث a1 هي الخلية المراد الانتقال إليها
  14. تفضل تم إجراء تعديلين المدى الذي يتم مسحه والعمود F وما بعده بالتوفيق Search++ - Copy.xlsm
  15. إن شاء اللّه يفيدك هذا الكود Sub mas() Application.ScreenUpdating = 0 Dim lr1 As Long, lr2 As Long, r As Long, c As Long, n As Long lr1 = Sheet1.Cells(Rows.Count, 1).End(3).Row lr2 = Sheet2.Cells(Rows.Count, 1).End(3).Row Sheet2.Rows("4:" & IIf(lr2 < 4, 4, lr2)).Delete Shift:=xlUp For r = 6 To lr1 c = 0 Sheet1.Select lr2 = Sheet2.Cells(Rows.Count, 1).End(3).Row If Evaluate("=COUNTIF($E$6:E" & r & ",E" & r & ")") = 1 Then Sheet1.Range("A5:N5").Copy Sheet2.Select Sheet2.Range("A" & lr2 + 2).Select ActiveSheet.Paste Application.CutCopyMode = False Sheet2.Range("f" & lr2 + 1) = Sheet1.Range("e" & r) Sheet2.Range("a" & lr2 + 2) = c + 1 Sheet2.Range("b" & lr2 + 2 & ":N" & lr2 + 2).Value = Sheet1.Range("b" & r & ":N" & r).Value c = c + 1 For n = r + 1 To lr1 If Sheet1.Range("e" & n) = Sheet1.Range("e" & r) Then lr2 = Sheet2.Cells(Rows.Count, 1).End(3).Row Sheet2.Range("A" & lr2 & ":N" & lr2).Copy Range("A" & lr2 + 1).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Sheet2.Range("a" & lr2 + 1) = c + 1 Sheet2.Range("b" & lr2 + 1 & ":N" & lr2 + 1).Value = Sheet1.Range("b" & n & ":N" & n).Value c = c + 1: Sheet2.Range("A4").Select End If Next n End If Next r Sheet2.Select Application.ScreenUpdating = 1 MsgBox "Done by mr-mas.com" End Sub وهذا ملفك بعد التعديل بالتوفيق الترحيل على حسب الوظيفة.xlsm
  16. إن شاء اللّه يفيدك هذا المرفق بيان العجز والزيادة.xlsx
  17. إن شاء اللّه يفيدك هذا الموضوع برنامج مفتوح المصدر
  18. أعتقد سبقت الإجابة عن هذه النقطة بهذا المقترح هذا الشيت هو الأساس الذي يتم فيه التسجيل وباقي الشيتات تبحث فيه وتعرض منه ما يوافق شروط البحث بالتوفيق
  19. أخي الكريم من أساسيات البرمجة : * في حالة اختيار المستخدم لبديل واحد فقط يتم استخدام option button * في حالة اختيار المستخدم لأكثر من بديل نستخدم check box بوضوح أكثر: في مثل حالتك هذه يجب استخدام option button لأنك في الأخير تريد أن يكون عنصر واحد فقط هو المحدد بالتوفيق
×
×
  • اضف...

Important Information