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

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

قام بنشر (معدل)

السلام عليكم

سلسلة دروس الترحيل عبر فورم بطرق بسيطة جدا

وبكود مختصر يغنينا عن تسمية العناصر بداخل الفورم

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

اذا استخدمنا التسميات TextBox سنحتاج الى كود كبير لتعريف هذه التسميات في الكود

الدرس الاول :

ترحيل عبر الفورم لصف واحد متسلسل يحتوي على 20 عمود

Private Sub CommandButton1_Click()
On Error Resume Next
Dim KH As Integer
Dim S As Long, R As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1
For R = 1 To 20   ' سلسلة الاعمدة
    Cells(LastRow, R + 1) = Me.Controls.Item(R - 1).Value
Next
MsgBox "تم الترحيل بنجاح", 524288, "تم الترحيل"
End
End Sub

الخطوة الاولى والهامه:

هي عند اضافتك للفورم في البداية قم باضافة العناصر (التاكستبوكس او الكومبكس)

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

ثم 1 - 2 وهكذا الى آخر عنصر تريده

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

مثل زر الترحيل والليبلات لتعريف موقع الترحيل للاعمدة

وقبل الانتقال الى الدرس الثاني

منتظرين ردودكم لمعرفة فهمكم للكود المستخدم

_______________________________1.rar

تم تعديل بواسطه خبور خير
  • الردود 62
  • Created
  • اخر رد

Top Posters In This Topic

قام بنشر
ترحيل عبر الفورم لصف واحد متسلسل يحتوي على 20 عمود

Private Sub CommandButton1_Click()
On Error Resume Next
Dim KH As Integer
Dim S As Long, R As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1
End Sub

الخطوة الاولى والهامه:

هي عند اضافتك للفورم في البداية قم باضافة العناصر (التاكستبوكس او الكومبكس)

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

ثم 1 - 2 وهكذا الى آخر عنصر تريده

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

مثل زر الترحيل والليبلات لتعريف موقع الترحيل للاعمدة

وقبل الانتقال الى الدرس الثاني

منتظرين ردودكم لمعرفة فهمكم للكود المستخدم

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

جزاك الله خيرا

استاذنا الفاضل

موضوع مهم ونتمنى ان نفهمة بعون الله ثم عونكم

قام بنشر

رائع جداً وفقك الله .

كيف استطعت تحديد نطاق ادخال البيانات من الصف الخامس العمود b

وهل استطيع دخال البيانات في صفحة أخرى لا أريد أن يراها المستخدم ؟؟

وباقي الأسئلة نؤجلها الى ما بعد الدروس القادمة .

أسأل الله أن يزيدك علماً .

قام بنشر

الاخ/خبور

الاخ/احمد يعقوب

وفقكم الله والله ما محيرنا فى الاكسيل الا الترحيل

قام بنشر

اولا شكرا جزيلا موضوع مهم وجميل - واضم صوتى الى الاخ الجيلانى واستفسر عن نفس السؤال

ولى سؤال آخر وهو هل من الممكن زيادة الاعمدة مثلا الى عدد 50 مثلا - وكيف ذلك

ومرة اخرى ربنا يوفقك

قام بنشر (معدل)

السلام عليكم

الاخوان جميعا ----------------حفظكم الله

نريد ان نمشي في هذا الشرح خطوة خطوة

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

لان ما بعده سيكون مرتبطا بفهم ما قبله

بارك الله فيكم

الاخ / جيلاني

LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1

هذا السطر من الكود معناه

آخر صف في العمود B زايدا واحد

تم تعديل بواسطه خبور خير
قام بنشر (معدل)

السلام عليكم

تابع للدرس الاول

ولى سؤال آخر وهو هل من الممكن زيادة الاعمدة مثلا الى عدد 50 مثلا - وكيف ذلك

عند انشاءك للفورم هنا تعين ماتريده

فتبدا مثل ما اخبرتكم اعلاه باضافة العناصر التي تريد الترحيل منها

انت طالب عدد خمسين اضفنا خمسين ابتدأنا من الشق الايمن من الفورم (راي العين)

باضافة عشرة بالتوالي تحت بعض ثم عملت لهم تجميع ونسختهم ولصقتهم

اربع مرات بالتوالي جنب بعض

صار لدينا خمسين

تاكست بوكس

انظروا ماذا غيرت في الكود

Private Sub CommandButton1_Click()
On Error Resume Next
Dim KH As Integer
Dim S As Long, R As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1
For R = 1 To 50   ' سلسلة الاعمدة
    Cells(LastRow, R + 1) = Me.Controls.Item(R - 1).Value
Next
MsgBox "تم الترحيل بنجاح", 524288, "تم الترحيل"
End
End Sub
في السطر الخامس من الكود
For R = 1 To 50   ' سلسلة الاعمدة

رقم عشرين غيرناه خمسين فقط لا غير

وصلت المعلومه والا عاده

________________.rar

تم تعديل بواسطه خبور خير
قام بنشر

السلام عليكم

الموضوع ده إن شاء الله انا عازم بتوصيله لكم

بقدر استطاعتي رغم انني في الشرح اشوف نفسي ركيك شوية

ومش عارف كيف طريقة القائي هل هي مفهومة؟؟

ولقد اضفت في الكودين فيما سبق متغير غير موجود

لم يسالني احدكم ايه لزمته ده

الا وهو Dim S As Long

ده احذفوه ما لهوش داعي لانه غير موجود اساسا

هو موجود في الدروس الاخرى

قام بنشر

الأخ الفاضل خبور خير وفقكم الله وزادكم علماً

الشرح واضح ومفهوم ونتابع الموضوع بحرص شديد لما له من اهمية .

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

منتظرين ومتابعين .

الشكر موصول.

قام بنشر

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

استاذي الفاضل

لو سمحت مامعنى هذا السطر

Dim KH As Integer

مع التحية

شاكر لك حسن صنيعك و اهتمامك

جزاك الله خير

قام بنشر

جزاك الله خيرا وبارك فيك

....

اولا : عملت لهم تجميع ونسختهم ولصقتهم ... كيف عملت التجميع ؟ ضغطت على ايه

ثانيا : الكود الموجود هنا .... عند الضغط على ALT + F11 لاياتي كيف أجده ؟

قام بنشر

شكرا على المرور

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

يمكنك البحث في المنتدى

سأحاول ايجاد ماتطلب ورفعه فورا

قام بنشر (معدل)

السلام عليكم

تم الترحيل بنجاح", 524288, "تم الترحيل"

هنا ملف فيه لمعانى اللارقام و الرموز التى تستخدم في الاكواد

و منها الرقم المشار اليه اعلاه "524288"

و هى تعنى ان يكون نص عنوان مربع الحوار الى اليمين باختصار بدل ان تكتتب

vbMsgBoxRight

تم الترحيل بنجاح", vbMsgBoxRight, "تم الترحيل"

و في الملف ايضا الكتير من الرموز و الارقام التى تفيد المستخدم في ال Msgbox

L2.rar

تم تعديل بواسطه ابو اسامة العينبوسي
قام بنشر (معدل)

السلام عليكم

الاخ جيلاني -----------------------حفظه الله

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

الاسئلة الان تكون في اطار الدرس

حتى لا تتشتت الافكار

بارك الله فيك

الاخ احمد يعقوب -----------------حفظه الله

نحن عرفنا تابع او متغير باسم kh تكون المتحولات حقه رقم صحيح

الاخ/ سوزي كارم -----------------حفظه الله

جوابك في المرفق

الاخ / محمدي-----------------حفظه الله

الشق :

Cells(LastRow, R + 1
الخلايا التي نريد وضع البيانات فيها مربوطة بالسلسلة R بالنسب للعمود وLastRow بالنسبة للصف اول عمود نريد وضع البيانات فيه هو B يعني رقم 2 وبداية السلسلة R تبدا بالرقم 1 اضفنا الرقم واحد ليصبح 2 اول صف نريد وضع البيانات فيه هو نهاية صف في العمود B وهو LastRow ما تم شرحه اعلاه الشق :
Me.Controls.Item(R - 1).Value

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

وهي الخطوة الاساسية في هذه الدروس التي اختصرنا بها الكود

ME تستخدم للدلالة على الفورم وممكن تكتب اسم الفورم بدلا عنها

المعنى :

العناصر او الكائنات للفورم (التاكست بوكس ) التي ستاخذ منها البيانات بدلالة رقم تسلسلي

وهو ( رتبة انشاءها مقارنة بباقي العناصر داخل الفورم )

مثال خارج عن الدرس : بما انك مدرس

لو عندنا فصل دراسي فاضي وعايزين ندخل الطلبة داخله

اول طالب يدخل يكون رقم 1 ثاني طالب يدخل يكون رقم 2 وهكذا

بالنسبة ITEM رقم 1 هو صفر رقم 2 هو 1 رقم 3 هو 2

الاخ / ابو اسامة -----------------حفظه الله

بارك الله فيك اخي ايوه ساعدنا في الشرح جزاك الله الف خير

ايضا لو عندك تفسير اكثر وضوحا لمعنى الكنترول

حتى يوضح المعنى بالشكل المطلوب

____________________.rar

تم تعديل بواسطه خبور خير
قام بنشر

السلام عليكم

نحن هنا نتكلم عن ماذا ؟؟

عن الكاثنات او العناصر التي بداخل الفورم

نريد منها عناصر معينة باستخدام رتبة وجودها بداخل الفورم مقارنة مع باقي العناصر داخل الفورم

هذا بالنسبة لموضوعنا

وممكن تكون اي شي آخر على حسب الاستخدامات المنوطه اليها

وبعدين انا ما اقدرش اعطيك ترجمة لكل شي

هناك قواعد مستخدمة وتسميات واغراض وتوابع

واشياء كثيرة ترجمتها حرفيا قد لا تعطي المعنى المنوط اليها

والله اعلم

قام بنشر (معدل)

السلام عليكم

اضافات لابد ان تعرف:

1- الغاية التي نريدها هي استخدام ضابط آخر يشير الى العنصر الذي نريد ترحيل البيانات منه

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

لاي عناصرآخرى لتكملة شكل الفورم الذي تريدة من ليبلات وازرار وصور وغيره.

وهذا لايعني ان هذا شرط ملزم .

2- بالامكان استخدام وعاء آخر لوضع عناصر اخرى قد تحتاجها لترحيل آخر وهو استخدام الفرمة

( سنتكلم عليه فيما بعد) لان الفرمة هي وعاء لمجموعة معينة تاخذ تسلسل كنترولي من الصفر بالاشارة الى هذا الوعاء.

بيان ما عرفناه في الدرس السابق:

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

الدرس الثاني:

لومعنا فاتورة مثلا : نحتاج الى ترحيل عدة صفوف لتحمل بيانات هذه الفاتورة

يعني نريد نرحل عدة صفوف الى ورقة العمل

وتاخذ هذه الصفوف ترتيب متسلسل داخل الورقة

في المرفق:

تتم هذه العملية بهذا الكود فقط

Private Sub CommandButton1_Click()
On Error Resume Next
Dim KH As Integer
Dim S As Long, R As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row
KH = 0
For S = 1 To 10
   For R = 1 To 5
       Cells(LastRow + S, R + 1) = Me.Controls.Item(KH + R - 1).Value
   Next
   KH = KH + 5
Next
MsgBox "تم الترحيل بنجاح", 524288, "تم الترحيل"
End
End Sub

سيتم الشرح من اسئلتكم

_______________________________2.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