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

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

قام بنشر

سيدي الكريم

في حال أردت التغيير بعدد الأعمدة , ما هو اللازم تعديله بالكود؟

موضوع الصفوف اكتشفته . لكن موضوع الأعمدة وجدته صعباً لضعفي في مجال البرمجة .

وشكرا لتعاونكم

قام بنشر

السلام عليكم

أخي الكود كالتالي


Sub TRANS()

'هذا يأتي بآخر عمود بالصف1 وفي حالتنا

LC = [IV1].End(xlToLeft).Column  ' Last Column



For c = 5 To LC Step 4 'معناه أن نبدأ عملية النقل من العمود الخامس

    r = (Int((c - 4) / 4) + 1) * 6 + 1 'لنقله الي الصف r الذي يتم حسابه بمعلومية الرقم 4 وهو عدد الأعمدة

    Range(Cells(1, c), Cells(1, c).Offset(5, 3)).Cut (Cells(r, 1))

Next c

End Sub


يعني الرقم بعد Step هو عدد الأعمدة

For c = 5 To LC Step 4

وكذلك المرتين للرقم 4 في السطر

r = (Int((c - 4) / 4) + 1) * 6 + 1

قام بنشر

الأخ الفاضل / الباشمهندس طارق

بعد التحية

من منطق محاولة التعلم من خبرات الأساتذة الكبار مثل حضرتك قمت بعمل بعض التعديلات البسيطة على الكود



Sub TRANS()

LC = [IV1].End(xlToLeft).Column

r = 7

For c = 5 To LC Step 4

	Cells(1, c).Resize(6, 4).Cut (Cells(r, 1))

	r = r + 6

Next c

End Sub

Sub TRANS2()

LR = [A1000].End(xlUp).Row

c = 5

For r = 7 To LR Step 6

	Range("A" & r).Resize(6, 4).Cut (Cells(1, c))

	c = c + 4

Next r

End Sub


صفوف-اعمدة 1_TAREQ3.rar

قام بنشر

الاخ رجب

مشكورا على المجهود الرائع

ممكن شرح الكود

بمعنى ماذا تعنى LC = [iV1].End(xlToLeft).Column

وماذا For c = 5 To LC Step 4

وماذا تعنى Cells(1, c).Resize(6, 4).Cut (Cells(r, 1))

r = r + 6

وماذا تعنى

LR = [A1000].End(xlUp).Row

وماذا تعنى

For r = 7 To LR Step 6

Range("A" & r).Resize(6, 4).Cut (Cells(1, c))

c = c + 4

قام بنشر

أخى ابراهيم

السطر التالى خاص بالحصول على أخر عمود يحتوى على بيانات ( فى الصف الأول)

LC = [iV1].End(xlToLeft).Column

r = 7

الجزء التالى حلقة تكرارية تبدأ من الرقم 5 حتى أخر عمود به بيانات حصلنا عليه فى الخطوة السابقة

أما الجزء step 4 فهو يحدد مقدار الزيادة التى تتم على المتغير c

أى فى الخطوة الأولى يكون c = 5 ثم الخطوة التالية يكون 9 وهكذا

For c = 5 To LC Step 4

السطر التالى اعادة تحجيم ل 6 أعمدة و 4 صفوف ابتداءا من الخلية المذكورة فى البداية (1, c )

ثم قص الخلايا المذكورة ولصقها فى الخلية ( r , 1 )

Cells(1, c).Resize(6, 4).Cut (Cells(r, 1))

فى السطر التالى نزيد 6 على قيمة r

r = r + 6

الكود الثانى نفس فكرة الكود الأول

قام بنشر

الاخ رجب

مشكورا لك التوضيح

ولكن استكمالا للفهم الاكثر

ممكن شرح الخطأ

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

واذا لم يكن صحيح فارجو التعديل

صفوف-اعمدة 1_TAREQ3.rar

قام بنشر

أخى ابراهيم

هناك تعديل واحد فقط وهو تغير الرقم 2 بالرقم 3 فى السطرين التاليين


	Cells(2, c).Resize(6, 4).Cut (Cells(r, 1))


Range("A" & r).Resize(6, 4).Cut (Cells(2, c))

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