الخطيب بيبوو قام بنشر نوفمبر 14 قام بنشر نوفمبر 14 تعديل على الكودمخازن 2024مكرو.xlsmمخازن 2024مكرو.xlsmمخازن 2024مكرو.xlsm مخازن 2024مكرو.xlsm
محمد هشام. قام بنشر نوفمبر 14 قام بنشر نوفمبر 14 وعليكم السلام ورحمة الله تعالى وبركاته عبارة تعديل على الكود تشمل عدة احتمالات المرجوا توضيح طلبك بدقة لنستطيع مساعدتك
الخطيب بيبوو قام بنشر نوفمبر 15 الكاتب قام بنشر نوفمبر 15 (معدل) الاستاذ هشام ........ اخر تعديل عايز احل عليه يوجد صفحة بطاقة الصنف بتاخذ من صفخة الوارد ثم من صفحة المنصرف بدلالة الصنف فى صفحة البطاقة الصنف مع مراعاة الفرز عن طريق التاريخ وعدم تكرار البيانات الاعمدة باللون الاصفر ............انتظر الحل ان شائ الله مخازن 2024مكرو.xlsm تم تعديل نوفمبر 15 بواسطه الخطيب بيبوو
الخطيب بيبوو قام بنشر الخميس at 13:23 الكاتب قام بنشر الخميس at 13:23 لاستاذ هشام ........ اخر تعديل عايز احل عليه يوجد صفحة بطاقة الصنف بتاخذ من صفخة الوارد ثم من صفحة المنصرف بدلالة الصنف فى صفحة البطاقة الصنف مع مراعاة الفرز عن طريق التاريخ وعدم تكرار البيانات الاعمدة باللون الاصفر
الخطيب بيبوو قام بنشر بالامس في 07:48 الكاتب قام بنشر بالامس في 07:48 ممكن تعديل على الكود ده Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$I$3" Then For i = 2 To 1000 x = WorksheetFunction.CountA(Range("b6:b1000")) If Sheets(2).calls(i, 7) = [$I$3].Value Then Sheets(5).Cells(6, 2).Offset(x, 0) = Sheets(2).Cells(i, 16) Sheets(5).Cells(6, 2).Offset(x, 1) = Sheets(2).Cells(i, 4) Sheets(5).Cells(6, 2).Offset(x, 2) = Sheets(2).Cells(i, 14) Sheets(5).Cells(6, 2).Offset(x, 3) = Sheets(2).Cells(i, 9) Sheets(5).Cells(6, 2).Offset(x, 4) = Sheets(2).Cells(i, 10) End If Next i For i = 2 To 1000 x = WorksheetFunction.CountA(Range("b6:b1000")) If Sheets(3).calls(i, 7) = [$I$3].Value Then Sheets(5).Cells(6, 2).Offset(x, 0) = Sheets(3).Cells(i, 4) Sheets(5).Cells(6, 2).Offset(x, 1) = Sheets(3).Cells(i, 19) Sheets(5).Cells(6, 2).Offset(x, 2) = Sheets(3).Cells(i, 17) Sheets(5).Cells(6, 2).Offset(x, 3) = Sheets(3).Cells(i, 9) Sheets(5).Cells(6, 2).Offset(x, 5) = Sheets(3).Cells(i, 10) Sheets(5).Cells(6, 2).Offset(x, 6) = Sheets(3).Cells(i, 11) End If Next i End If End Sub
محمد هشام. قام بنشر بالامس في 17:40 قام بنشر بالامس في 17:40 (معدل) أعتقد أن سبب التأخير في الرد هو صعوبة فهم طلبك بالطريقة التي تم طرحه بها في 21/11/2024 at 14:23, الخطيب بيبوو said: مع مراعاة الفرز عن طريق التاريخ وعدم تكرار البيانات الاعمدة باللون الاصفر صراحة هذه النقطة لم أستوعبها تماما هل يمكنك توضيحها بشكل أبسط أو إرفاق عينة من النتائج المتوقعة بشكل أكثر دقة حتى نتمكن من مساعدتك بشكل أفضل؟ قم بتجربة هذا الكود أولا لجلب البيانات وعند التحقق من صحتها يمكنك توضيح التعديل المطلوب بشكل أدق وسوف نكون سعداء بمساعدتك لتحقيق النتائج الصحيحة Dim tmp As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim WS As Worksheet, Sh1 As Worksheet, Sh2 As Worksheet, Items As Worksheet Dim Clé As Range, OnRng As Range, LastRow As Long, ling As Variant With ThisWorkbook Set WS = .Sheets("بطاقة صنف") Set Sh1 = .Sheets("اضافة") Set Sh2 = .Sheets("الصرف") Set Items = .Sheets("الأصناف") End With Set Clé = Me.Range("I3") If Not Intersect(Target, Me.Range("J2:I3")) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual Set OnRng = WS.Range("B6:I" & WS.Rows.Count) LastRow = Items.Cells(Items.Rows.Count, 1).End(xlUp).Row Clé.Formula = "=IFERROR(VLOOKUP($J$2,'الأصناف'!$A$3:$B$" & LastRow & ",2,0),"""")" Clé.Value = Clé.Value ling = Me.Range("I3").Value If ling <> tmp Then tmp = ling If IsEmpty(ling) Or ling = "" Then OnRng.ClearContents GoTo AppTrue End If OnRng.ClearContents Call Cnt(Sh1, WS, ling, Array(16, 4, 14, 9, 10)) Call Cnt(Sh2, WS, ling, Array(19, 4, 17, 9, 10, 11)) If WorksheetFunction.CountA(WS.Range("B6:B" & WS.Rows.Count)) = 0 Then OnRng.ClearContents End If End If AppTrue: Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.EnableEvents = True End If End Sub '====================================== Private Sub Cnt(ByVal dest As Worksheet, ByVal tbl As Worksheet, _ ByVal temp As Variant, ByVal ColArr As Variant) Dim i As Long, x As Long, LastRow As Long, n As Long, Cel As Range LastRow = dest.Cells(dest.Rows.Count, 7).End(xlUp).Row For i = 3 To LastRow With dest If Not IsEmpty(.Cells(i, 7).Value) And Not IsError(.Cells(i, 7).Value) Then If .Cells(i, 7).Value = temp Then x = WorksheetFunction.CountA(tbl.Range("B6:B1000")) For n = LBound(ColArr) To UBound(ColArr) Set Cel = tbl.Cells(6 + x, 2 + n - LBound(ColArr)) Cel.Value = .Cells(i, ColArr(n)).Value Next n End If End If End With Next i End Sub مخازن 2024مكرو V2.xlsm تم تعديل بالامس في 17:43 بواسطه محمد هشام. 1
الخطيب بيبوو قام بنشر بالامس في 20:00 الكاتب قام بنشر بالامس في 20:00 (معدل) اولا جزاك كل خير لكن ليس هذا المطلوب شيت الاضافات يوجد 5 اعمدة بنم نرحليهم (رقم اذن الاضافة و التاريخ و الاسم المورد و كمية توريد خارجى و تحويل وارد\ مرتجع موقع) الى بطاقة الصنف وشيت الصرف ايضا نفس 6 اعمده يتم ترحيلهم (رقم اذن الصرف والتاريخ و الاسم الصرف والى الموقع و تحويل صادر \ مرتجعات مشتريات و كمية الهالك )الى بطاقة الصنف تم تعديل بالامس في 20:47 بواسطه الخطيب بيبوو
محمد هشام. قام بنشر بالامس في 21:21 قام بنشر بالامس في 21:21 اخي لقد تم الاعتماد على الأعمدة المحددة في الكود الخاص بك Call Cnt(Sh1, WS, ling, Array(16, 4, 14, 9, 10)) Call Cnt(Sh2, WS, ling, Array(19, 4, 17, 9, 10, 11)) على العموم بعد تعديلها بما جاء في اخر مشاركة لك هده هي نتيجة كارت الصنف 121 لاحظ الصورة المرفقة ادا كان هدا هو المطلوب اخبرني بدالك
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.