تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حصريا لمنتدى vb4arab -المرجع الكامل للتعامل مع Microsoft Excel
#3
كاتب المشاركة : Athman

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

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

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

2-كتابة كود يضع البيانات اولا ثم كتابة كود يسوي التنسيقات ثانيا والعكس الصحيح
كرأي الشخصي الأفضل الطريقة الأولى ولكن مادمنا في غرض التعليم فسنستخدم الطريقة الثانية
وسنبدا بإدخال البيانات إلى الأكسل ثم تنسيق الورقة
*****إدخال البيانات
من الافضل تصميم شكل أولي بالإكسل بحيث تحدد مكان كل معلومة في خلية محددة وبعد ذلك لانحتاج إلى إلا كود واحد لكل شيء نريد كتابته وهو

كود :
ReportWS.Range("Address of the Cell").Value="Value"
حيث "Address of the Cell"هو عنوان الخلية المراد وضع الكلام فيها "Value"
نأخذ على ذلك مثالين الأول لقيمة نكتبها بأنفسنا والثانية لقيمة يكتبها المستخدم في مربع النص

كود :
ReportWS.Range("A1").Value= "Personal Information"
ReportWS.Range("B1").Value= txtName.Text
هل رايتو مدى سهولة إدخال البيانات
سؤال يطرح نفسه كيف يمكن كتابة معادلة
الاجابة على هذا السؤال تعتمد على مكان الأرقام التي تريد تكوين معادلة لها فلو كانت في برنامجك تكتبها كمعادلة عادية

كود :
ReportWS.Range("B1").Value= val(txtQTY.Text)*val(txtCartons)
أما لو كانت في ورقة الإكسل
فتكتبها كأنت تكتب معادلة في إكسل

كود :
ReportWS.Range("B1").Value= "=B2+B3"
تلميح ذكي:
أحيانا نظطر لكتابة بيانات كثيرة في الاكسل فتكون الطريقة مرهقة والحل يكمن باستخدام With>>>End With

كود :
With ReportWS
.Range("A1").Value="Personal Information"
.Range("A2").Value="Name"
.Range("B2").Value=txtName.Text
.Range("A3").Value="Age"
.Range("B3").Value=txtAge.Text
.Range("C3").Value="Gender"
.Range("D3").Value=txtGender.Text
End With
حيث إنك بمجرد كتابة النقطة ((.)) ستظهر قائمة منسدلة تختار منها Range وتكمل بعد ذلك
*****تنسيق البيانات
بصراحة هذا هو الجزء المتعب ولكن بقليل من الذكاء تجعله سهلا لو كان عندك معرفة بالبرمجة
تنسيق البيانات حرية لكل مبرمج يعني ماحد يقدر يقيدك بتنسيق معين لان لكل منا ذوقه فلذلك قم بتنسيق ملف الاكسل براحتك وعندما ترى انه صار مناسبا اعرف التغييرات اللي عملتها وجهز نفسك لكتابتها بالكود
طبعا الطريقة بسيطة جدا لانها مثلها مثل كتابة البيانات
لنعد إلى ملف الإكسل

نلاحظ هنا التغييرات التالية

2تغيير لون الخلفية إلى اللون الأحمر الغامق من لنفس المنطقة وكذلك جعل لون الكتابة أبيض

4-أما باقي الخلايا فقط قمنا بتغيير الخط نوعا ((Times New Romans وحجما (Bold ) وعرضا (14)
طبعا كل اللعب على الكلمة .Value في الكود الخاص بتنسيق البيانات فمثلا لتغيير تنسيق A1

كود :
ReportWS.Range("A1").Font.Name = "Times New Romans"
ReportWS.Range("A1").Font.Size = 20
ReportWS.Range("A1").Font.Bold = True
ReportWS.Range("A1").Font.ColorIndex = 2
ReportWS.Range("A1").Interior.ColorIndex = 53
الباقي نتركه لكم
طيب بالنسبة للدمج كيف نسويه؟؟؟؟؟؟
الدمج بسيط جدا في المكان اللي تحدد فيه الخلية حدد الخلايا الداخلة في الدمج
مثلا احنا هنا عندنا من A1 إلى D1 إذا نكتب
وبدل الخاصية Font تختار Merge وخلاص

طيب نأتي الآن لأهم جزء وهو الذي بسببه استوردنا هذا الكم الهائل
وهو وضع الحدود على الخلايا
بصراحة هذا اللي يخلي الاكسل بايخ في موضوع الطباعة لأن كوده طويل طبعا حللوه مع نفسكم وهذا هو من غير فلسفة ولا نقاش
عيبه انه كل خط لازم تكتب فيه 3 أسطر حاولو تفهموا الكود وانا موضح لكم بعض منها
.
كود :
Range("A1:D3").Borders(xlDiagonalDown).LineStyle = xlNone
.Range("A1:D3").Borders(xlDiagonalUp).LineStyle = xlNone
With .Range("A1:D3").Borders(xlEdgeLeft)
'خط مستمر غير متقطع .LineStyle = xlContinuous
لون الاوتوماتيكي(أسود يعني) .ColorIndex = xlAutomatic
ما أدري هههههههههههههههـ .TintAndShade = 0
عرض الخط سميك .Weight = xlThick
End With
الكود التالي خاص بالحد العلوي xlEdgeTop
With .Range("A1:D3").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With .Range("A1:D3").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With .Range("A1:D3").Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
الكود التالي خاص بالحدود الداخلية العمودية xlInsideVertical
With .Range("A1:D3").Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlHairline
End With
With .Range("A1:D3").Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlHairline
End With
نكتفي بهذا القدر لهذا الموضوع ونكمل المرة القادمة
تلميح:لو أردت عمل أي كود لم أقم بشرحه من أنواع التنسيقات حاول اللعب بـ .Value وإن لم تعرف كيف تكتبه فسأعطيك خطة جهنمية ادخل للأكسل وسوي انشاء ماكرو جديد وسوي التنسيق اللي تبيه ووقف المكرو وادخل على تحرير الماكرو وسوي نسخ ولصق ولما تلاقي أي كلمة بدئت بـxl في الكود محطوط تحت خط أزرق فاعرف انه الفيجوال ماعرفه فعشان كذا تروح للـObject Browser بالظغط على F2 وتبحث عنها ولما تلاقيها تاخذ مكانها وتسوي لها Import في أعلى الملف
1-دمج (Merge) الخلايا منA1 إلى D1 3تغيير الخط إلى ((Times New Romans وجعل الخط (20) وعريضا (Bold) ReportsWS.Range("A1
1-كتابة الكود الخاص بكل بيان على حدة مع كود تنسيق الخلية اللي هي فيها (مثلا نكتب كود يضع الاسم في b2 ونخلي الخط Arial )
}}}
تم الشكر بواسطة: asemshahen5 , Hamza lads , a7med saba


الردود في هذا الموضوع
حصريا لمنتدى vb4arab -المرجع الكامل للتعامل مع Microsoft Excel - بواسطة Raggi Tech - 03-10-12, 12:40 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Exclamation [VB.NET] استيراد ملف اكسل الى vb.net Import Excel File Table –datagridview Sheet samo2000 1 3,695 20-02-22, 05:49 PM
آخر رد: رضوان الجماعي
  مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات ابو ليلى 24 16,435 04-10-20, 06:16 PM
آخر رد: محمد بن عطية
  طباعة بيانات موجودة في برنامج على ( 2003 Microsoft Office Word ) abulayth 1 4,762 11-09-16, 07:20 AM
آخر رد: أبووسم
  صمم الكلاس الخاص بك - كلاس للتعامل مع SQL SERVER ابو ليلى 11 9,607 03-09-16, 07:43 PM
آخر رد: tryold
  فيديو بالعربي تبادل البيانات بين Excel و VB.net أحمد النجار 0 4,024 03-06-15, 10:53 PM
آخر رد: أحمد النجار
  حصريا لمنتدى فيجوال بيسك لكل العرب شرح مكتبه علي سبايسى (alysbisydata) alimse 9 7,602 03-01-15, 04:10 PM
آخر رد: abulayth
  الكامل في VB.Net (التعامل مع الأقراص و المجلدات و الملفات) rinawi 3 4,366 25-05-13, 01:11 PM
آخر رد: shaker.soft
  معلومة ::: Get Excel Version ::: RaggiTech 0 1,752 06-10-12, 09:58 PM
آخر رد: RaggiTech
  معلومة ::: Microsoft.VisualBasic.Compatibility RaggiTech 1 2,063 06-10-12, 09:42 PM
آخر رد: RaggiTech
  يمكننا استخدام فيجول بايزيك 2008 لإنشاء صفحات أشرطة إضافية لـ Excel 2007 RaggiTech 0 3,542 05-10-12, 01:14 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: