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

الردود الموصى بها

قام بنشر

السلام عليكم و رحمة الله و بركاته المنتدي الوحيد الذي يتم فيه الاجابات هو هذا جعلها الله في ميزان حسنات كل مساهم و مجيب 

عندي برنامج و اريد  عندما   يكون الاسم شخص موجود يظهر له  الاقسام حسب الايام  الصورة موجودة للتوضيح و البرنامج مرفوع 

جزاكم الله خيرا 

image.png.11639660f30d038fdbf03311e2c4db93.png

 

الاحد و الاثنين و الثلاثاء و الاربعاء و الخميس 

التقرير-اليومي 2022 مبرمج.xlsm

قام بنشر (معدل)

وعليكم السلام ورحمة الله تعالى وبركاته 

تفضل جرب 

=IF(B22="","",  INDEX(Feuil2!$G$4:G24,   MATCH(B22, Feuil2!$D$4:D24, 0),1))

مع تغير  Feuil2!$G$4:G24   باسم العمود المراد جلب بياناته في باقي الاعمدة

او

=IF(B22<>"",INDEX(Feuil2!E:E,AGGREGATE(15,6,ROW(Feuil2!E$4:E$24)/(Feuil2!$D$4:$D$24=B22),ROWS(C22:C22))),"")

  مع التغيير هنا بما يناسبك (Feuil2!E:E,AGGREGATE(15,6,ROW(Feuil2!E$4:E$24)

=IFERROR(VLOOKUP(Feuil1!$B22,Feuil2!$D$4:$M$24,2,0),"")

 مع استبدال رقم 2 برقم العمود المراد جلب بياناته 

او

=IF(B22="","",XLOOKUP(B22,Feuil2!$D$4:$D$24,Feuil2!$E$4:$E$24))

 

التقرير-اليومي 2022 مبرمج.xlsm

 

تم تعديل بواسطه محمد هشام.
  • Like 2
قام بنشر (معدل)

image.png.8d1ab2b3bf09ec18899ac3dfef6aa1f2.pngا

image.png.cc2b37427c295db2f9c86cdaa60da7e7.png

اريد حسب الأيام يعني عندما اضع مثلا يوم الاحد تظهر لي الأقسام التي يعمل بها هذا الأستاذ  و هكذا مع باقي الايام 

تم تعديل بواسطه ahmedhossin
  • أفضل إجابة
قام بنشر

وعليكم السلام ورحمة الله تعالى وبركاته 

تفضل اخي 

حاولت تنفيدها بطريقة اخرى  لتكون النتائج ادق وعدم تسبب المعادلات بثقل للملف زيادة على  غياب تطابق عناوين الاعمدة على الجداول 

ودالك بتحويل المعادلات الى اكواد 

ووضع لكل يوم كود معين يتم تنفيده بشرط قيمة الخلية  S3  

 

ملاحظة

1) لقد قمت بحدف المغادلة الخاصة بجلب اسم اليوم  من التاريخ  في الخلية S3 ووضعت قائمة منسدلة تتضمن الايام من الاحد الى الخميس  عند اختيارك اليوم المناسب يتم جلب بياناته تلقائيا 

2) تم الاستغناء على معادلة الترقيم التلقائي للبيانات في عمود A  واستبدالها بالاكواد

3) يتم تنفيد الكود  المناسب عند التغيير في عمود الاسماء تلقائيا 

الكود الخاص بيوم الاحد للتوضيح 

 

Sub Sunday()
Dim F1$, F2$, F3$, F4$, F5$, F6$, F7$, F8$, A$, B$, J%
Dim MyRng As Range, MyDst As Range, Title As Range, R As Range, D As Range

Dim MyDest As Worksheet: Set MyDest = Feuil1
Dim MyData As Worksheet: Set MyData = Feuil2

A = MyDest.Name
  B = MyData.Name
    Set C = MyData.Range("$D$4:$M$24")
       Set D = MyDest.Range("A22:A31")
        Set Title = MyDest.Range("B22:B31")
         Set MyRng = MyDest.Range("F22:U31")
Application.ScreenUpdating = False

    MyDest.Unprotect "0000"
     D.ClearContents

With MyDest
   
    F1 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",2,0),"""")"
    F2 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",4,0),"""")"
    F3 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",5,0),"""")"
    F4 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",6,0),"""")"
    F5 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",7,0),"""")"
    F6 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",8,0),"""")"
    F7 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",9,0),"""")"
    F8 = "=IFERROR(VLOOKUP('" & A & "'!$B22,'" & B & "'!" & C.Address & ",10,0),"""")"

[F22] = F1: [H22] = F2: [J22] = F3: [L22] = F4: [N22] = F5: [P22] = F6: [R22] = F7: [T22] = F8
     
.Range("F22:U22").AutoFill Destination:=.Range("F22:U31"), Type:=xlFillDefault
          MyRng.Value = MyRng.Value
          
For Each R In Title
        If R.Value <> Empty Then
         J = J + 1
         R.Offset(0, -1).Value = Format(J, "0")
         End If
       Next
    MyRng.Replace 0, "", xlWhole
 End With
 MyDest.Protect "0000"

End Sub

الكود الخاص بتنفيد الكود المناسب  عند التغيير في خلية اليوم

Sub Results()

Select Case Range("S3")
        
        Case "الأحد": Sunday

            Case "الاثنين": Monday

               Case "الثلاثاء": Tuesday
                
                Case "الأربعاء": Wednesday

                  Case "الخميس": Thursday

    End Select

End Sub

 

مع وضع الكود التالي في Worksheet.Change  الورقة 1

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B22:B31")) Is Nothing Then
        Application.EnableEvents = False
           Call Results
        Application.EnableEvents = True
   Exit Sub
End If
If Not Intersect(Target, Range("S3")) Is Nothing Then
    Application.EnableEvents = False
        Call Results
    Application.EnableEvents = True
      End If
  On Error GoTo 0
  
End Sub

 

التقرير اليومي مبرمج 2023.xlsm

  • Like 3
  • Thanks 2
قام بنشر

اخ هشام جزاك الله خيرا و حفظك و رعاك 

لقد تمت العملية بنجاح باهر و ممتاز لك مني الشكر و الاحترام و التقدير 

دمت لنا اخي و دام عطاءك 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information