خالد الشيخ قام بنشر أغسطس 1, 2015 قام بنشر أغسطس 1, 2015 السلام عليكم لدي ملف اكسل في الشيت الأول مدخلات لسنوات عديدة لإجمالي المتأخرات لدى العملاء التي تم تحصيلها في نهاية الشهر وفي الشيت الثاني المبالغ نفسها ونفس الترتيب ولكن مجمعة سنوات انا اريد بدلآ من النسخ واللصق لكل الخلايا من الشيت الأول الى الثاني اريد دوال او معادلات انقل بها مباشرة الى الجدول علماً ان البيانات الموجودة في المثال افتراضية وتتغير كل شهر حسب شهر السداد بمعنى ممكن في شهر اجد ان قام العملاء بسداد في عام 2010 مثلا كل الشهور يعني 12 شهر وفي نهاية شهر اخر اجد المسدد 5 شهور Test.rar
ياسر خليل أبو البراء قام بنشر أغسطس 1, 2015 قام بنشر أغسطس 1, 2015 في ورقة العمل المسماة "المبالغ" في العمود الثاني بعنوان التاريخ لا يوجد تواريخ ... إنما هي أرقام ..يرجى توضيح الملف بالشكل الكافي الذي يزيل أي لبس
خالد الشيخ قام بنشر أغسطس 1, 2015 الكاتب قام بنشر أغسطس 1, 2015 اشكرك اخوي ياسر على الرد والاهتمام عمود التاريخ يأتي لي هكذا ولا اريد تعديله يعني مثلا 1009 تعني المسدد من العملاء في شهر 9 لعام 2010 1501 شهر يناير لعام 2015 وهكذا وانا اريدها مثل مانا موضحها في الطلب احسنت على ملاحظتك واهتمامك في انتظار الرد وكما وضحت في المثال التواريخ الموجودة في المثال افتراضية ومن الممكن تكون اقدم واحدث من الموجودة واكثر في عددها وعدد الاشهر
بن علية حاجي قام بنشر أغسطس 1, 2015 قام بنشر أغسطس 1, 2015 السلام عليكم ورحمة الله أخي الكريم، جرب المرفق لعل فيه المطلوب، مع إضافة صفوف بعدد الأشهر لكل سنة في الجدول المرحل إليه (يمكن تصفية الصفوف الفارغة حسب مثلا العمود الثاني) وإضافة تسمية لنطاق البيانات "المصدر" بالتسمية Rng... أرجو أن يفي الغرض المطلوب... أخوك بن علية Test.rar 1
ياسر خليل أبو البراء قام بنشر أغسطس 2, 2015 قام بنشر أغسطس 2, 2015 (معدل) أخي الكريم وهذا حل آخر بالأكواد ... 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 تم تعديل أغسطس 2, 2015 بواسطه ياسر خليل أبو البراء 1
خالد الشيخ قام بنشر أغسطس 3, 2015 الكاتب قام بنشر أغسطس 3, 2015 اشكركم على الرد والتفاعل اخي ياسر بارك الله فيك الكود اكثر من رائع ولكني اريد ان تكون المعادلات اكثر قابلية لإضافة شهور وسنوات اكثر واكثر كيف يكون ذلك
ياسر خليل أبو البراء قام بنشر أغسطس 3, 2015 قام بنشر أغسطس 3, 2015 أخي الكريم خالد يمكنك إضافة شهور وسنوات كما ترغب فقط ضع السنوات في العمود الأول في ورقة النتائج ونفذ الكود .. لا يوجد معادلات يجب ترك صفين بين كل سنة وأخرى على الأقل جرب الملف التالي Transfer Based On Years YasserKhalil V2.rar
خالد الشيخ قام بنشر أغسطس 3, 2015 الكاتب قام بنشر أغسطس 3, 2015 بارك الله فيك اخي ياسر واعذرني في كثرة الأسئلة ولكن هذا لقلة معرفتي بالإكسل اخي انا لدي مثلا الأن جدول به سنوات من 2007 حتى مثلا مثلا 2020 وكل سنة بها شهور متعددة كيف اعدل على الجدول هل ممكن مثلا بالأكواد ان يقوم الإكسل بتحويل كل مافي الشيت الأول الى جدول بنفس الشكل الموجود في الشيت الثاني ويقسمه سنوات وشهور ايا كان عددها دون تدخل مني في الكتابة
ياسر خليل أبو البراء قام بنشر أغسطس 6, 2015 قام بنشر أغسطس 6, 2015 (معدل) أخي الكريم خالد إليك الملف التالي عله يفي بالغرض (هذا أقصى ما يمكن الوصول إليه) قم بتسجيل السنوات في ورقة النتائج عن طريق نسخ ولصق للسنوات فقط (لن يكون الأمر مرهق) ، كما بالمرفق ثم تنفيذ الكود مرة واحدة فقط ... Transfer Based On Years YasserKhalil V3.rar تم تعديل أغسطس 6, 2015 بواسطه ياسر خليل أبو البراء
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.