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

سؤال في الترحيل من جدول الى جدول مقسم سنوات ومجمع


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

السلام عليكم

لدي ملف اكسل في الشيت الأول مدخلات لسنوات عديدة لإجمالي المتأخرات لدى العملاء التي تم تحصيلها في نهاية الشهر

وفي الشيت الثاني المبالغ نفسها ونفس الترتيب ولكن مجمعة سنوات 

 

انا اريد بدلآ من النسخ واللصق لكل الخلايا من الشيت الأول الى الثاني  اريد  دوال او معادلات  انقل بها مباشرة الى الجدول  علماً ان البيانات الموجودة في المثال افتراضية وتتغير كل شهر حسب شهر السداد  بمعنى ممكن في شهر اجد ان قام العملاء بسداد في عام 2010 مثلا كل الشهور يعني 12 شهر  وفي نهاية شهر اخر اجد المسدد 5 شهور

 

 

Test.rar

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

اشكرك اخوي ياسر على الرد والاهتمام 

عمود التاريخ يأتي لي هكذا  ولا اريد تعديله  يعني  مثلا  1009  تعني  المسدد من العملاء في شهر 9 لعام 2010   

1501   شهر يناير لعام 2015   وهكذا  وانا اريدها مثل مانا موضحها في الطلب 

احسنت على ملاحظتك واهتمامك 

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

رابط هذا التعليق
شارك

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

أخي الكريم، جرب المرفق لعل فيه المطلوب، مع إضافة صفوف بعدد الأشهر لكل سنة في الجدول المرحل إليه (يمكن تصفية الصفوف الفارغة حسب مثلا العمود الثاني) وإضافة تسمية لنطاق البيانات "المصدر" بالتسمية Rng... أرجو أن يفي الغرض المطلوب...

أخوك بن علية

Test.rar

  • Like 1
رابط هذا التعليق
شارك

أخي الكريم

وهذا حل آخر بالأكواد ...

Sub CopyToTablesByYear()
    Dim SH As Worksheet, WS As Worksheet, Y As Long, F As Range
    Dim H As Long, I As Long, J As Long, K As Long, R As Long, S As String, D As Range

    Set WS = Sheets("المبالغ"): Set SH = Sheets("المبالغ مرحله سنوات")

    S = WS.Range("B2")
    Y = Left(S, Len(S) - 2) + 2000
    I = 2

    For R = 2 To WS.Range("B" & Rows.Count).End(xlUp).Row + 1
        S = WS.Range("B" & R)
        If S = "" Then S = "9999"
        If Left(S, Len(S) - 2) + 2000 = Y Then GoTo GetNext
        J = R - I
        Set D = WS.Range("B" & I).Resize(J, 1)
        Set F = SH.Range("A:A").Find(Y)
        If F Is Nothing Then Exit Sub
        If F.Row - J <= K Then
            SH.Range("A" & F.Row - 1).Resize(K - F.Row + J + 1, 1).EntireRow.Insert
        End If
        K = F.Row
        H = K - J
        SH.Cells(H, 1).Resize(J, 5).Value = D.Resize(J, 5).Value
        SH.Cells(H, 14).Resize(J, 1).Value = D.Offset(0, 10).Resize(J, 1).Value
        I = R: Y = Left(S, Len(S) - 2) + 2000
GetNext:
    Next R
End Sub

تقبل تحياتي

Transfer Based On Years YasserKhalil.rar

 

تم تعديل بواسطه ياسر خليل أبو البراء
  • Like 1
رابط هذا التعليق
شارك

اشكركم على الرد والتفاعل

اخي ياسر بارك الله فيك الكود اكثر من رائع

ولكني اريد ان تكون المعادلات اكثر قابلية لإضافة شهور وسنوات اكثر واكثر  كيف يكون ذلك 

رابط هذا التعليق
شارك

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

يمكنك إضافة شهور وسنوات كما ترغب فقط ضع السنوات في العمود الأول في ورقة النتائج ونفذ الكود .. لا يوجد معادلات

يجب ترك صفين بين كل سنة وأخرى على الأقل

جرب الملف التالي

Transfer Based On Years YasserKhalil V2.rar

رابط هذا التعليق
شارك

بارك الله فيك اخي ياسر

واعذرني في كثرة الأسئلة ولكن هذا لقلة معرفتي بالإكسل

اخي انا لدي مثلا الأن جدول به سنوات من 2007 حتى مثلا مثلا 2020 وكل سنة بها شهور متعددة  كيف اعدل على الجدول

هل ممكن مثلا بالأكواد ان يقوم الإكسل بتحويل كل مافي الشيت الأول الى جدول بنفس الشكل الموجود في الشيت الثاني ويقسمه سنوات وشهور ايا كان عددها دون تدخل مني في الكتابة

رابط هذا التعليق
شارك

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

إليك الملف التالي عله يفي بالغرض (هذا أقصى ما يمكن الوصول إليه)

قم بتسجيل السنوات في ورقة النتائج عن طريق نسخ ولصق للسنوات فقط (لن يكون الأمر مرهق) ، كما بالمرفق ثم تنفيذ الكود مرة واحدة فقط ...

 

 

Transfer Based On Years YasserKhalil V3.rar

تم تعديل بواسطه ياسر خليل أبو البراء
رابط هذا التعليق
شارك

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