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

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

قام بنشر

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

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

لا تحرمنا من دعائكم

بعض الأكواد البسيطة.rar

First.rar

Second.rar

Third.rar

 

  • Like 3
قام بنشر

 

 

بعض الأكواد البسيطة والمطلوبة

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

1- فتح الملف على اليوزرفورم Userform.

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

أ‌-     أضف للملف يوزرفورم وذلك في محرر الفيجوال بيسك من قائمة إدراج(Insert) نختار (UserForm).

ب- في قسم المشروع (Project) انقر مزدوجا ThisWorkbook

ب‌-           في نافذة الكود اكتب الكود التالي

Private Sub Workbook_Open()

UserForm1.Show

End Sub

وهذا الكود ليس به إلا سطر واحد يأمر الإكسل بفتح الملف على اليوزر فورم وهذا السطر هو

UserForm1.Show

بعد انتهاء العمل نجد أن الملف يفتح على الفورم ونجد ان الفورم يمكن تحريكه في أي اتجاه كما يمكننا أن نغلقه من مفتاح الغلق في أقصى يمين الفورم من أعلى كما نلاحظ أن ملف الإكسل يظهر وراء الفورم.

أنظر First.rar

 

 

2- فتح الملف على اليوزرفورم مع إخفاء صفحة الإكسل.

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

Private Sub Workbook_Open()

Application.Visible = False

UserForm1.Show

End Sub

هذا السطر Application.Visible = False يجعل ملف الإكسل مخفيا

انظر المرفق Second.rar

3- فتح الفورم على مقاس الشاشة.

والأن.. ماذا نفعل لنفتح الفورم على مقاس الشاشة؟ تابع معي:

الفكرة أن نجعل أبعاد الفورم مثل أبعاد الشاشة ولكن باختلاف المستخدمين للملف سيكون هناك أبعاد مختلفة من حاسوب وآخر ولذلك يمكن عمل الكود التالي:

()Private Sub UserForm_Activate

With Application

    Me.Top = .Top

    Me.Left = .Left

    Me.Height = .Height

    Me.Width = .Width

End With

ونجد أن الكود يطلب أن يكون اتساع الفورم كما اتساع التطبيق وارتفاع الفورم كإرتفاع التطبيق والآن جرب الكود في نافذة كود الفورم. انظر التطبيق Third.rar

ولكن قم بتحريك الفورم في كل الاتجاهات، هل يستجيب الفورم للحركة؟

4- نثبت الفورم (الفريم) بحيث لايمكن تحريكه الى اي اتجاه.

يمكن نثبت الفورم بحيث لايمكن تحريكه الى اي اتجاه وذلك بكتابة هذا الكود في نافذة كود الفورم.

Private Sub UserForm_Layout()

With Me

.Left = Application.Left

.Top = Application.Top

End With

End Sub

انظر التطبيق Forth.rar

5- الغاء رمز الاغلاق(x).

يمكن إلغاء عمل رمز الأغلاق في أفصى يمين أعلى الفورم بالكود التالي ولكن هذا أن يجعلك تستطيع إغلاق الفورم أو الإكسل ولذلك أقترح أن تضع على الفورم مفتاح تسمية "إغلاق" ويكون له كود فقم أولا بكتابة الكودين المرفقين

()Private Sub CommandButton1_Click

Unload Me

End Sub

)Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer

If CloseMode = vbFormControlMenu Then

Cancel = True

End If

End Sub

لاحظ أن هذا الكود سيمنع إغلاف الفورم من (X) ولكن يمكن إغلاق الفورم من زر إغلاق الذي أضفناه، وإذا أردنا إغلاق الفور وملف الإكسل معا نضع السطر التالي في كود المفتاح بعد "Unload Me":

ActiveWorkbook.Close True

انظر التطبيق Fifth.rar

 

 

6- عمل شاشة افتتاحية.

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

فهيا معا نبنى هذا التطبيق:

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

ب‌-                      كرر العمل في الورقة الثانية والثالثة مع تغيير ما يلزم.

ت‌-                      أضف فورم للملف وضع عليه ثلاثة مفاتيح أكتب على الأول "الورقة الأولى" والثاني "الورقة الثانية" والثالث "الورقة الثالثة"

ث‌-                      أكتب الكود التالي في مكان كود الفورم

()Private Sub CommandButton1_Click

Unload Me

Worksheets("Sheet1").Activate

End Sub

()Private Sub CommandButton2_Click

Unload Me

Worksheets("Sheet2").Activate

End Sub

 

 

()Private Sub CommandButton3_Click

Unload Me

Worksheets("Sheet3").Activate

End Sub

ج‌- اكتب الكود التالي في مكان كود "ThisWorkbook":

()Private Sub WorkBook_Open

                          UserForm1.Show

End Sub

انظر التطبيق "شاشة أفتتاحية.rar"

إخواني الأعزاء أسمحوا لي أن أتوقف هنا

وإذا كنتم أستفدتم فسأكمل.

والله الموفق 

 

 

 

 

ربنا يبارك فيك بحق الله اخي

رؤوف1951

  •  

===============================================

بعض الأكواد البسيطة.rar

 

===========================

سر على بركة الله واكمل

  • Like 4
  • Thanks 1
قام بنشر

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

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

لا تحرمنا من دعائكم

بعض الأكواد البسيطة.rar

First.rar

Second.rar

Third.rar

 

باقي الملفات

Forth.rar

Fifth.rar

شاشة أفتتاحية.rar

  • Like 2
قام بنشر

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

انتظروني بجديد إن شاء الله

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

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

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

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

تدريب أولى للترحيل:

افتح ملف جديد وقم بعمل فورم به أسمه User_Data وسم الورقة الأولى "Data"

ضع على الفورم تكست بوكس ومفتاح سمى التكست بوكس "TxtBox1" واترك المفتاح كما هو ولكن اجعل Caption له "إدخال البيانات الجديدة"

الآن أكتب الكود التالي في نافذة كود ThisWorkbook 

Private Sub WorkBook_Open()

User_Data.Show
End Sub
هذا الكود تعاملنا معه سابق ومفهوم الغرض منه
والآن في الفورم أنقر مزدوجا المفتاح واكتب في النافذة الظاهرة الكزد التالي وعملة توصيف عمل المفتاح
 
Private Sub CommandButton1_Click() 
Dim ws As Worksheet
Set ws = Worksheets("Data")
ws.Cells(4, 2).Value = Me.TxtBox1.Value
Me.TxtBox1.Value = ""
Me.TxtBox1.SetFocus
End Sub
السطر الأول بداية الكود والسطر الثاني تعريف المتغيرات ودائما يبدأ بكلمة Dim، ثم السطر الثالث يسمى المتغير ws بالاسم "Data" ثم يأتى السطر الرابع ليبدأ عمل المفتا وهو يضع القيمة الموجودة في التكست بوكس في الفورم يحولها للشيت في الخلية بالسطر الرابع والعمود الثاني وقد يقول البعض هناك طريقة أسهل وانا معك ولكن سنحتاج هذه الطريقة لتكملة الملف فالصبر يا إخوان
السطر الخامس يجعل التكست بوكس خاليا بعد ترحيل البيانات منه والسطر السادس يضع مؤشر الكتابة في التكست بوكس استعدادا للبيانات الجديدة
أرجو التنفيذ وإبداء الملاحظات وإن تعثرتم فها فهذا هو ملف البداية
 

 

 

 

تم تعديل بواسطه رؤوف1951
  • Like 1
قام بنشر (معدل)

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

شكرا لكل من مر على موضوعنا المتواضع وجزاكم الله بالخير

نكمل اليوم الملف الذي نعمل عليه.

أضف للفورم تكست بوكس جديد يكون لإدخال الكود (أى رقم أو أى حروف أو أى تركيبة من الحروف والأرقام)  وبذك أصبح لدينا بيانين يراد تحويلهما للشيت فماذا يزيد الكود هنا عن الكود في التطبيق السابق؟ وهنا نبدأ بتسمية التكست بوكس بأسماء تدل على محتواه لماذا؟ سيمر الوقت وتحتاج لرؤية الكود وتكون قد نسيت .. فلنساعد أنفسنا ونتعود على تسمية الكنترولة باسم يدل على نوعها وعملهافمثلا أسميت التكست بوكس الذي يحوي الكود بالأسم "CodeBox" وأسميت الآخر "NameBox" والآن نرجع للكود المطلوب:

Private Sub CommandButton1_Click()

Dim ws As Worksheet
Set ws = Worksheets("Data")
ws.Cells(4, 1).Value = Me.CodeBox.Value
ws.Cells(4, 2).Value = Me.NameBox.Value
Me.CodeBox.Value = ""
Me.NameBox.Value = ""
Me.CodeBox.SetFocus
End Sub
هل لاحظتم حضراتكم أن الكود قد زاد سطرين فقط ولا يحتاجان لشرح جديد
جرب الملف وسجل ملاحظاتك حتى أطمئن وأكمل
تم تعديل بواسطه رؤوف1951
قام بنشر

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

مازلت في انتظار تعليقاتكم!!!!:wavetowel:

انتقل لموضوع قديم ولكن يلزم الكتابة فيه ألا وهو "الحماية"

تابعووووووووووووووووووونا

قام بنشر

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

لي بعض الملاحظات البسيطة وإن شاء الله تكون مفيدة ..

الأفضل أن يكون هناك موضوع لكل درس تعليمي ويكون مركز في كود واحد أو موضوع واحد مع الشرح المستفيض بحيث تتم الاستفادة بشكل أكبر

التنسيق للموضوع مهم جداً مما يجعل القاري منتبه للموضوع بشكل أكبر

ضع الأكواد بين أقواس الكود ليظهر بشكل منضبط ..

حاول تشرح الأكواد سطر سطر واضرب أمثله واطلب من الأخوة الأعضاء عمل تطبيق (عملي) ..

أرجو أن تتقبل ملاحظاتي بصدر رحب

تقبل وافر تقديري واحترامي

  • Like 2
  • 2 weeks later...
قام بنشر

بسم الله الرحمن الرحيم

أخوتي وأحبائي تغيبت عليكم لمرضى فأرجو فبول عذرى

لاحظنا في حوارنا أن الملف الذى قمنا به يعمل على خير وجه ةلكن كل بيانات جديدة نرحلها تقع على البيانات القديمة فتمسحها وتأخذ مكانها وهذا عيب قاتل فكيف نعالج ذلك؟

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

ولمعرفة أول سطر خالى نكتب السطر التالي في الكود

LRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

ويمكنك الاطلاع على الوظائف التي بسطر الكود (مثل Offset، Cells) من كثير مما عرض فى موقعتا الحبيب

ونغير ما يلزم فيصبح الكود كالتالي:

Private Sub CommandButton1_Click()
Dim LRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
Me.CodeBox.SetFocus
LRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ws.Cells(LRow, 1).Value = Me.CodeBox.Value
ws.Cells(LRow, 2).Value = Me.NameBox.Value
Me.CodeBox.Value = ""
Me.NameBox.Value = ""
End Sub

وإليكم الملف المرفق

SimplTransport_2.rar

والآن إلى مشروع ملف كامل يجمع كل ما تم شرحه وسيتم شرح مفردات المشروع لاحقا

 

  • Like 1
  • 11 months later...
قام بنشر

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

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

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

وتقبل تحياتي

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information