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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    197

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

  1. الأسهل تصدير الملف بصيغة xlsx أو csv من خادم قاعدة البيانات ويمكن استعمال هذه الصفحة لتحويل الملف إلى اكسل https://www.convertcsv.com/sql-to-csv.htm بالتوفيق
  2. يمكنك استعمال هذه الدالة المعرفة 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 بالتوفيق
  3. الأفضل من وجهة النظر البرمجية أن تبقى هذه صفحة بيانات وتنشئ صفحة جديدة يتم عرض نتائج أول 26 صفا ثم ثاني 26 صفا بكتابة رقم الصفحة في خلية ومعادلات البحث تجلب لك النتائج مثل هذا الموضوع بالتوفيق
  4. آمين ولك مثل ما دعوت وزيادة
  5. أخي الكريم بالنسبة لموضوع الاستعداد للكتابة فتحديد الخلية المشار إليها سابقا مني تكفي وبالنسبة لموضوع setfocus أو focus فهذه تستخدم مع عناصر التحكم في النموذج وليس مع الخلايا في الشيت
  6. الموضوع ممكن باستخدام دوال الويندوز لكن إذا سمحت لي ما الفائدة العملية من إجراء مثل هذا؟ نقل مؤشر الفارة فوق خلية معينة
  7. هل تقصد نقل التركيز ؟ يعني المستطيل الغامق حول الخلية النشطة أم فعلا تقصد سهم مؤشر الفارة بغض النظر عن الخلية المحددة إذا كان المقصود الأول فيمكنك استعمال Range("a1").select حيث a1 هي الخلية المراد الانتقال إليها
  8. الشكر لله الذي بنعمته تتم الصالحات
  9. تفضل تم إجراء تعديلين المدى الذي يتم مسحه والعمود F وما بعده بالتوفيق Search++ - Copy.xlsm
  10. إن شاء اللّه يفيدك هذا الكود 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
  11. إن شاء اللّه يفيدك هذا المرفق بيان العجز والزيادة.xlsx
  12. إن شاء اللّه يفيدك هذا الموضوع برنامج مفتوح المصدر
  13. أعتقد سبقت الإجابة عن هذه النقطة بهذا المقترح هذا الشيت هو الأساس الذي يتم فيه التسجيل وباقي الشيتات تبحث فيه وتعرض منه ما يوافق شروط البحث بالتوفيق
  14. أخي الكريم من أساسيات البرمجة : * في حالة اختيار المستخدم لبديل واحد فقط يتم استخدام option button * في حالة اختيار المستخدم لأكثر من بديل نستخدم check box بوضوح أكثر: في مثل حالتك هذه يجب استخدام option button لأنك في الأخير تريد أن يكون عنصر واحد فقط هو المحدد بالتوفيق
  15. حسب فهمي للمطلوب إن شاء اللّه يكون هذا مطلوبك الثاني Sub hideblank() For n = 2 To 151 Columns(n).Hidden = Iif(Cells(5, n) = "",True,False) Next n End Sub Private Sub Worksheet_Activate() hideblank End Sub بالتوفيق
  16. المنتدى هنا مليء بموضوعات تعليمية وشرح مصور وفيديو يحتاج فقط من يبحث عنها كنوووووز
  17. عليكم السلام و رحمة الله وبركاته تنسيق رائع بارك الله لك اقتراحاتي: * وجود شيت تسجيل بيانات الدوام ويكون فيه مسلسل ورقم الموظف وأربعة أوقات دخول وخروج (Maint & apres M) وتاريخ اليوم وأي ملاحظات أخرى * تعديل شكل التقرير الشهري ليكون رأسيا ولموظف واحد وكذلك السنوي (طالما تحرص على عرض 4 أوقات) لكن إذا كان الهدف عرض إجمالي التأخير أو الإضافي بدون التوقيتات الأربعة فيمكن عمل التقرير أفقيا بالتوفيق
  18. جميعا بإذن الله أنا ما فعلت شيئا سوى ضبط بعض الجمل في ترتيبها حتى الزميل قلب الأسد قام بتعريف المتغيرات واختصار بعض السطور فقط بالتوفيق
  19. يمكنك استعمال هذا الكود للإخفاء Sub hideblank() For n = 2 To 151 If Cells(5, n) = "" Then Columns(n).Hidden = True Next n End Sub وهذا لإظهار الكل Sub showblank() Columns("b:eu").Hidden = False End Sub بالتوفيق
  20. جرب أن تحذف هذا السطر فهو لحذف عمليات الترتيب السابقة
  21. الخطأ في الكود الأصلي أنا فقط قمت بإعادة ترتيب أوامره في أي سطر يظهر الخطأ؟
  22. الكود صحيح ما دام يعمل على بعض الأجهزة ولا علاقة له بنسخة 64 أو 32 ولكن به بعض من عدم الترتيب جرب هذا التعديل في ترتيب الأكواد Sub ترتيبي() Prompt = "إذا أردت الإستمرار فانتظر لأن الترتيب يأخذ بعض الوقت " Command_buttons = vbYesNo + VbMsgBoxRt1Reading Title = "هل تريد ترتيب البيانات بعد التغيرات الجديدة ؟؟ " project = MsgBox(Prompt, Command_buttons, Title) If project = vbYes Then Application.ScreenUpdating = False Application.Calculation = xlCalculationManual With ActiveWorkbook.Worksheets("master").Sort .SortFields.Clear .SortFields.Add2 Key:=Range("BV8:BV6053"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= xlSortNormal .SortFields.Add2 Key:=Range("BT8:BT6053"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= xlSortNormal .SortFields.Add2 Key:=Range("C8:C6053"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= xlSortNormal .SetRange Range("B8:BW6053") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Call MsgBox(" تم الترتيب بنجاح ", mBox, "الحمد لله ") Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End If End Sub بالتوفيق
×
×
  • اضف...

Important Information