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

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

قام بنشر

السلام عليكم أحبائى وأساتذتى الكرام ... أرجو التكرم على مساعدتى فى ايجاد وجلب اسم الشركة الموجودة بالعمود الثالث C من صفحة Main الى العمود الأول A بصفحة Final بناءاً على التواريخ الموجودة بالعمودين B & C من نفس الصفحة على ان يكون اسم الشركة بهذان التاريخين مرة واحدة اى بدون تكرار , ولكم جزيل الشكر

Company.xlsm

قام بنشر

انت هنا تجدد:
            اول 3 صفوف للتاريخ  من 1/7/2020  الى 31/7/2020 وما ادراك ان العدد سيكون 3 شركات؟؟؟
            ومن الصف 5 الى الصف 10 للتاريخ  من 1/8/2020  الى 31/8/2020 وما ادراك ان العدد سيكون 6 شركات؟؟؟
ربما ينفع احد هذين الملفين (الرجاء ابلاغي ايهما تريد لا تقل الاول او الثّاني اريد تسمية الملف)

 

Company_Repprt_ExPlicit.xlsm

Hani.xlsm

  • Like 1
قام بنشر

ممتاز استاذ سليم بارك الله فيك ولكن ممكن ملاحظة هذه المشكلة فتم تغيير تاريخين فقط للشركات فى شهر سبتمبر 2020 ولكن كما ترى بالملف بعد تنفيذ الكود أعطانى أكثر من اسم والأصح والمفروض ان يعطينى هذان الإسمان فقط 

King Travel

Agency Travel

 

1.png

Hani.xlsm

قام بنشر

أحسنت استاذ سليم عمل ممتاز بارك الله فيك وزادك الله من فضله وأدخلك فسيح جناته ... وهو بالفعل المطلوب

جزاك الله كل خير ونصر الله لبنان وشعبها

  • Like 1
قام بنشر

أكثر من ذلك تم تطوير الكود بحيث تظهر النتائج في عامود واحد مع ترقيمها

Option Explicit
    Dim F As Worksheet, M As Worksheet
    Dim L_M%, L_F%, K%, t%, xx%, A%
    Dim x As Boolean, y As Boolean, z As Boolean
    Dim D1 As Date, D2 As Date
    Dim Obj As Object
 '++++++++++++++++++++++++++++++++++++
Sub fin_Please(Rg1 As Range)
   D1 = Application.Min(Rg1.Resize(, 2))
   D2 = Application.Max(Rg1.Resize(, 2))
    For K = 2 To L_M
        x = IsDate(M.Cells(K, 1))
        y = M.Cells(K, 1) >= D1
        z = M.Cells(K, 1) <= D2
          If x * y * z <> 0 Then
            Obj(M.Cells(K, 3).Value) = vbNullString
          End If
    Next K
If Obj.Count Then
 Rem Typing The Results in the Sheet
     xx = F.Cells(Rows.Count, 1).End(3).Row + 1
     With F.Range("A" & xx)
      .Value = "From " & F.Range("D" & A) _
              & " To " & F.Range("E" & A)
      .Interior.ColorIndex = 40
          With .Offset(1).Resize(Obj.Count)
           .Value = Application.Transpose(Obj.keys)
           .Interior.ColorIndex = 35
           .Offset(, 1).Value = _
            Evaluate("Row(1:" & Obj.Count & ")")
            .Offset(, 1).Interior.ColorIndex = 19
           End With
     End With
 Rem End Of Typing The Results in the Sheet
End If

End Sub
'+++++++++++++++++++++++++++++++++++++++
Sub test()
      Rem Created By Salim Hasbaya On Nov. 17 2020
Application.ScreenUpdating = False
    Dim First_Col, Second_col%, Mycol%
    Dim Cel As Range, Mesg$
    
    Set F = Sheets("Final")
    Set M = Sheets("Main")
    Set Obj = CreateObject("Scripting.Dictionary")
 Rem Clear Old Data
    t = F.Range("A2").CurrentRegion.Rows.Count
    If t > 1 Then
      F.Range("A2").CurrentRegion. _
        Offset(1).Resize(t - 1).Clear
     End If
 Rem End of Clear Old Data
    L_F = F.Cells(Rows.Count, 4).End(3).Row
    L_M = M.Cells(Rows.Count, 1).End(3).Row
 Rem For Control the dates====================
    First_Col = L_F
    Second_col = F.Cells(Rows.Count, 5).End(3).Row
    If First_Col < 2 Or Second_col < 2 Then
      Application.ScreenUpdating = True
      Exit Sub
    End If
    Mycol = Application.Max(First_Col, Second_col)
        For Each Cel In F.Range("D2:E" & Mycol)
          If Not IsDate(Cel) Then
           Mesg = Mesg & Cel.Address & Chr(10)
          End If
         Next
      If Mesg <> "" Then
        MsgBox "Check Up This Cells Please:" & Chr(10) _
         & Mesg & Chr(10) & _
         "They Must Be A Date"
         Application.ScreenUpdating = True
        Exit Sub
       End If
 Rem End of For Control the dates ==================

Rem Looping Throught the dates in Column D And E
    For A = 2 To L_F
     fin_Please (Sheets("Final").Range("D" & A))
     Obj.RemoveAll
    Next
Rem end of Looping Throught the dates in Column D And E

Rem Format The Results
    t = F.Range("A2").CurrentRegion.Rows.Count
    If t > 1 Then
        With F.Range("A2").CurrentRegion. _
          Offset(1).Resize(t - 1).SpecialCells(2, 23)
          .Borders.LineStyle = 1
          .InsertIndent 1
          .Font.Size = 16: .Font.Bold = True
        End With
    End If
Rem End Of Format The Results
Application.ScreenUpdating = True
End Sub

الملف من جديد

Hani_Exact_1.xlsm

  • Like 1

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