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

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

قام بنشر

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

لقد وقفت عند الكود التالي من البارحة  :

Dim state As String
Dim shName As Worksheet
 Set shName = Sheets("mm")
LR = shName.Cells(Rows.Count, 4).End(xlUp).Row
det1 = CDate("01/01/2016")  '
det2 = Date
stafe = "amjad"
Sai = Application.WorksheetFunction.SumIfs(shName.Range("b3:b" & LR), shName.Range("o3:o" & LR), stafe, shName.Range("p3:p" & LR), (">=" & det1), (shName.Range("p3:p" & LR)), ("<=" & det2))
 

 

ممكن احد يساعدني في معرفة وين الخطاء ..

المطلوب من الكود  جمع  مبيعات موظف " amjad" خلال الفترة من تاريخ det1  وحتى تاريخ det2

علماً ان 

1- العمود Range("b3:b" & LR)  هو ما سيتم جمعة  في الشيت

2-  العمود  Range("o3:o" & LR)  هو  عمود فية اسماء الموظفين  في الشيت

3- العمود Range("p3:p" & LR)  هو عمود تاريخ المبيعات في الشيت

4- det1  = بداية التاريخ

5- det2 = نهاية التاريخ

 

اتمنى الحل

 

 

قام بنشر

أخى وحبيبى فى الله  محمد الزريعى

بستأذنك ممكن حضرتك ترفق ملف ربما احدا من الاخوه يقدر يساعد ومعاه ملف بدل ما هو بيقرا كود ومتغيرات مش شايفها

بالتوفيق أخى العزيز

أخى وحبيبى فى الله  محمد الزريعى

بستأذنك ممكن حضرتك ترفق ملف ربما احدا من الاخوه يقدر يساعد ومعاه ملف بدل ما هو بيقرا كود ومتغيرات مش شايفها

بالتوفيق أخى العزيز

قام بنشر

أخي الكريم محمد

بحثت عن الكود في ملفك المرفق ولم أجد الكود ...يرجى إرفاق ملف آخر وبه الكود المطلوب التعديل عليه فقط وتوضيح المطلوب بشكل أدق حتى لا يتوه الأعضاء بين طيات الأكواد في الملف

تقبل تحياتي

 

قام بنشر

Private Sub CommandButton2_Click()
'On Error Resume Next
Dim shet, shName, Activshet, SPF As Worksheet
Dim det1, det2, OnDet, OfDet    As Date
Dim stafe, MyFile, NewName  As String

  nm = ActiveSheet.Name
Set Activshet = Sheets(nm)
mgm = TextBox2.Text
If mgm = "" Then mgm = Date
If Not IsDate(mgm) Then
   MsgBox "mmmmmmmmmmmmmmmmmmmm"
TextBox2.Text = ""
Else
  If mgm > 1 Then TextBox2.Text = Format$(mgm, "dd/mm/yyyy")
End If
 

sn = 0
det1 = Trim(TextBox1.Text)
det2 = Trim(TextBox2.Text)
Set shet = Sheets("h")
    shet.Activate
    LR = (shet.Cells(Rows.Count, 28).End(3).Row)


Set SPF = Sheets("SPerformance")
    SPF.Range("a4:zz10000").EntireRow.Delete
        resala1 = "startdate "
        resala2 = " endate "
    SPF.Range("c" & 1) = resala1 & det1 & resala2 & det2

For i = 2 To LR
   stafe = shet.Cells(i, 28)
   TARGT = shet.Cells(i, 29)
   OnDet = CDate(shet.Cells(i, 30))
   tar = shet.Cells(i, 31)
   If tar = "" Then tar = Date
   OfDet = CDate(Format$(tar, "dd/mm/yyyy"))
   QS = 0
   QR = 0

If OfDet >= det1 Or (OfDet = Date And OnDet <= det2) Then     
       sn = sn + 1
       LO = (SPF.Cells(Rows.Count, 1).End(3).Row) + 1
       SPF.Range("A" & LO) = sn
       SPF.Range("B" & LO) = stafe
       for z = 1 to 3
           shiit = Sheets(Z).Name
              Select Case shiit
                     Case Is = ("1")
                           zez = 16
                           Set shName = Sheets("1")
                     Case Is = ("2")
                            zez = 16
                            Set shName = Sheets("2")
                     Case Is = ("3")
                            zez = 20
                            Set shName = Sheets("3")
              End Select
              shName.Activate
              LRSH = shName .Cells(Rows.Count, 4).End(xlUp).Row
     

 

        
s = Application.WorksheetFunction.SumIfs((shName .Range("b3:b" & LRSH )), (shName .Range("o3:o" & LRSH )), stafe , (shName .Range("p3:p" & LRSH )), (">=" & det1), (shName .Range("p3:p" & LRSH )), ("<=" & det2))        

 

 

QS = QS + s
  QR = QR + R

  SPF.Range("C" & LO) = 0
  SPF.Range("D" & LO) = QS
  SPF.Range("E" & LO) = 0
  SPF.Range("F" & LO) = QR
       Next z
       SPF.Activate
    End If
    Next i
Activshet.Activate

End Sub

 

المطلوب هو  جمع  مبيعات موظف ،،

أذا تم تغيير اسم الموظف  يقوم بجمع مبيعاته من الشيت رقم 1 ثم الشيت رقم 2 ثم الشيت رقم 3 ،،  بين تاريخين محددين      ( det1  و det2 )

قام بنشر

S = Application.WorksheetFunction.SumIfs( shName.Range("b3:b" & LRSH), shName.Range("p3:p" & LRSH), (">=" & det1), shName.Range("p3:p" & LRSH),  (  ("<=" & det2 ) ,    shName.Range("o3:o" & LRSH), stafe

هذا كود  الجمع ،، لكن يطلع عندي خطاء  عندما اغير date1  الي dete2

قام بنشر

والله يا استاذي  ياسر خليل ابو البراء ،، مش عارف وين المشكلة ..

لخصت  الكود في كود بسيط للتجربة  في المرفق // كود عبارة عن ثلاثة اسطر  تقريباً في المديول وليس الفورم . ...  

عالعموم  انا اول ما افتح الملف انقر فوق الدائرة الزرقاء لتشغيل الكود أدخل حرف a  النتيجة تظهر عندي صفر

 

sumifsvba.rar

شكل الزهايمر أشتغل عند جهازي  ما يعرف يجمع .. :wavetowel: 

قام بنشر

جرب الكود بهذا الشكل

ركز على تحويل التاريخ إلى تسلسل رقمي وليس تاريخ

Sub SUMIFS_VBA()
    Set shName = Sheets("2")
    LRSH = (shName.Cells(Rows.Count, 15).End(3).Row)
    
    det1 = CDbl(#1/1/2016#)
    det2 = CDbl(Date)
    
    stafe = InputBox("ادخل اسم المسوق الذي هو في العمود o ")
    
    S = Application.WorksheetFunction.SumIfs( _
    shName.Range("B3:B" & LRSH), _
    shName.Range("P3:P" & LRSH), ">=" & det1, _
    shName.Range("P3:P" & LRSH), "<=" & det2, _
    shName.Range("O3:O" & LRSH), stafe)
    
    MsgBox (S)
End Sub

تقبل تحياتي

 

  • Like 1
قام بنشر

اول شئ اشكرك استاذي القدير ياسر  خليل ابو البراء .

ثاني شئ  طبقت الكود الخاص بك وأشتغل وراح اطبقه على ملفي الخاص الاكسل ،

ربما تكون المشكلة  لانني قمت بتعريف  det1  و det2  نوع تاريخ .. على الشكل التالي

dim det1 as date

dim det2 as date

وعندما مسحتهم  اشتغل تمام ،،

ولكن فوق هذا نسخت الكود الخاص بك ،،  لا نه اضمن ..

 

شكراً على حلك السريع ..  وربنا يجعلها في ميزان حسانتك أخي الكريم ..

  • Like 1
قام بنشر

الحمد لله أن تم المطلوب على خير أخي الحبيب محمد الزريعي

بالفعل لا تقم بالإعلان عن المتغيرين det1 و det2 من النوع تاريخ فقد ذكرت لك أنه تم تحويلهما ليكونا كرقم متسلسل وليس تاريخ .. يفضل الإعلان عنهما من النوع Variant

عموماً الحمد لله أن عرفت موضع المشكلة وتم حلها بفضل الله وحده

تقبل تحياتي

  • 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