Jump to content
أوفيسنا

تغيير اسم الفورم برمجياً


Recommended Posts

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

السادة الكرام مشرفين واعضاء

هل يمكن تغيير اسم الفورم برمجياً

طبعاً المطلوب هو تغيير الـ name وليس الـ caption

أظن أنه ليس بحاجة الى مرفق

Link to post
Share on other sites

بارك الله فيك استاذي ابا البراء

الامر له علاقة بموضوعي السابق

حيث إنه اذا كان بالامكان تعديل اسم الفورم برمجيا يمكنني استدعاء فورم البحث من خلال 3 فورمات

لدي 3 فورمات sam1   sam2  sam3  ولدي فورم بحث find  (واذا امكنني تغيير اسم اي من الثلاث فورمات )  يمكن أن أجعل فورم البحث مرتبط بفورم اسمه (form1)

فعند تشغيل sam1  يتغير اسمه الى form1  لكي يعمل فورم البحث وعند الغاء form1 يتغير  اسمه الى sam1

ونفس الشيء مع sam2   و sam3

واذا كان هناك طريقة افضل فجزاكم الله كل خير

Link to post
Share on other sites

بارك الله فيك استاذي ابا البراء

كنت قد حصلت من النت على مثل هذا الكود

ThisWorkbook.VBProject.VBComponents("UserForm1").name = "newName"

ولكن لم يعمل وتظهر رسالة  : وصول برمجي الى مشروع فيجوال بيزك غير موثوق به

ولكن هل يعمل الكود عند حضرتك ؟؟؟

وقد وجد كودا من النت لم استطع الاستفادة منه وهو يحتاج الى اضافة من مكتبة فيجوال بيزك

Sub RenameControls() 
     '
     ' use tools > references to include a reference to the
     ' extensibility library
     '
    Dim vbpTemp As VBProject 
    Dim frmTemp As VBComponent 
    Dim cntTemp As MSForms.Control 
     
    Set vbpTemp = Application.VBE.ActiveVBProject 
    Set frmTemp = vbpTemp.VBComponents.Item("Userform1") 
     
    For Each cntTemp In frmTemp.Designer.Controls 
        If TypeOf cntTemp Is MSForms.TextBox Then 
            Select Case UCase(cntTemp.Name) 
            Case "TEXTBOX1" 
                cntTemp.Name = "txtUsername" 
            Case "TEXTBOX2" 
                cntTemp.Name = "txtDepartment" 
            Case "TEXTBOX3" 
                cntTemp.Name = "txtAccount" 
            End Select 
        End If 
    Next 
     
End Sub 

هو لتغيير اسماء الكونترولات . هل يمكن الاتفادة منه في مطلبي

Link to post
Share on other sites

بارك الله فيك استاذي اباالبراء

تم بحمد الله حل نصف المشكلة وهو تغيير اسم الفورم عند استدعائه

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

فكيف يمكنني تنفيد كود بعد اغلاق الفورم ( طبعاً الكود سيكون في مديول وليس في الفورم) ؟

في الملف المرفق . طبقت الفكرة على فورم1 فقط للتجربة

تغيير اسم الفورم برمجيا.rar

Link to post
Share on other sites

لم أفهم المطلوب ..أي فورم تتحدث عنه وأي كود في الموديول .. وما الاسم الذي غيرته ؟ وما الاسم المطلوب التغيير إليه ... وما هو الغرض من ذلك لأني لا أفهم الغرض من فكرة تغيير اسم الفورم ...

Link to post
Share on other sites

كل الشكر على المتابعة

في الملف المرفق في المشاركة السابقة

يوجد فورم SAM1 لتنزيل البينانات على ورقة1 واثناء تنزيل البينات سيظهر فورم البحث FIND_NAME لتختار منه اسم (عمر-احمد-ياسر ...) وفورم البحث هذا مرتبط بالفورم  sam1 (انظر Private Sub UserForm_KeyPress في فورم البحث)

طيب اذا كنت اريد أن يعمل فورم البحث مع 3 فورمات sam1  sam2  sam3 فكيف الحل . ..

ابسط الحلول هو أن اعمل لك فورم بيانات  فورم بحث خاص فيه يعني

find_name1 خاص لفورم sam1

find_name2 خاص لفورم sam2

find_name3 خاص لفورم sam3

لكن اذا يوجد حل بحيث يتم استدعاء فورم البحث نفسه مع كل فورم بيانات فهو الافضل

الفكرة : أن أجعل فورم البحث find_nam مرتبط بفورم البيانات sama الغير موجود حالياً

عملت ماكرو يقوم بتغيير من  sam1  الى sama ثم يشغل الفورم sama وهكذا ويتم تنزيل البيانات ويعمل فورم البحث لأنه متربط بفورم اسمه sama

وهذا الجزء تم عمله بشكل تمام ويمكن أن يعمل مع 3 فورمات

 

وعملت ماكرو اخر عند اغلاق sama يتم تغيير الاسم من sama   الى sam1 . وهذا الجزء لم يعمل . لذلك احتاج الى طريقة تنفيذ الكود بعد اغلاق فورم البيانات

 

عذراً للاطالة وأرجو أن الفكرة أضحت واضحة

 

 

Link to post
Share on other sites

أخي الكريم 

لا أفهم المشكلة إلى الآن ..

طالما أن الفورمات الثلاثة sam1 و sam2 و sam3 نفس الهيكلة ونفس الوظيفة لما لا يتم الاستغناء عن الثلاثة والاكتفاء بفورم واحد فقط

Link to post
Share on other sites

أعمل على تصميم برنامج محاسبة

لدي فورم شراء وفورم مبيع وفورم مرتجع شراء وفورم مرتجع مبيع وفورم قيد يدوي

وفي كل هذه الفورمات استدعي فورم البحث لتنزيل اسم الحساب في الفورم النشط ( شراء - مبيع - .......)

جزاك الله كل خير على صبرك علي

Link to post
Share on other sites
3 ساعات مضت, ياسر خليل أبو البراء said:

إذاً لما لا تقوم بعملية الاستدعاء لفورم البحث في أي فورم آخر .. صدقني لم افهم المشكلة للآن

 

عملية استدعاء يجب أن تكون في فاتورة شراء وكذلك البيع وكذلك المرتجع

 

عندما تفتح فاتورة شراء . لابد من تسجيل اسم المورد وهذا يكون باستدعاء فورم البحث لتنزيل اسم المورد

وعندما تفتح فاتورة مبيع . لابد من تسجيل اسم الزبون وهذا يكون باستدعاء فورم البحث لتنزيل اسم الزبون وهكذا..

 

في الفورم المرفق ثلاثة فورم فواتير ( شراء - مبيع - مرتجع)

الرجاء جرب كل فاتورة ستجد أن لك فاتورة فورم بحث خاص بها

 

Link to post
Share on other sites

المعذرة يبدو أنني من العجلة نسيت ارفاق الملف

وللتوضيح اكثر

عندما يُستدعى فورم البحث find_name1 ونختار اسم الحساب ثم انتر يتم تنزيل اسم الحساب في فورم sam1 والكود المسؤول عن هذه العملية هو

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If ListBox1.ListCount = 0 Then
MsgBox "   ßáãÉ ÇáÈÍË ÛíÑ ãæÌæÏÉ  ", vbMsgBoxRight, "ÇáÍãÏ ááå ÑÈ ÇáÚÇáãíä"
  
    Unload Me
   Find_Name.Show
  Else
    '
    
Select Case KeyAscii
Case 13
    sam1.TextBox6 = ListBox1
    sam1.TextBox5.SetFocus
  Unload Me
  
End Select
End If

End Sub

ولاحظ هذا الجزء من الكود

   sam1.TextBox6 = ListBox1
   sam1.TextBox5.SetFocus

حيث قيمة ليست بوكس ستنزل في فورم sam1

هذا معنى كلامي كل فورم مرتبط بفورم بحث

لذلك اعمل على فورم بحث عام يعمل مع عدة فورمات

الرجاء جرب كل فاتورة ستجد أن لك فاتورة فورم بحث خاص بها

استدعاء فورم بحث من خلال ثلاثة فورمات.rar

Edited by سمير نجار
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

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

  • Similar Content

    • By عمرو المطري
      السلام عليكم ورحمة الله وبركاته
      اخواني الكرام احب اشكركم على جهودكم الكبيرة التي تقدمونها لكل شخص يريد التعلم
      استفساري هو كيف احول ملف الأكسس من اليسار الى اليمين ؟
      عندما أقوم بتصميم جدول يكون من اليسار الى اليمن ولما انشئ نموذج يكون من اليسار الى اليمين
      ولا استطيع تغييره الا بشكل يدوي وهو امر متعب نوعًا ما , وقد وجدت بعض الاجابات انه يمكنني تغيير الجهة من الخيارات
      لكن لم اجد الخيارات المتقدمة
      استطعت تغيير جهة الجدول من خصائص الجدول لكن عند انشاء نموذج يكون من اليسار الى اليمين
      نسخة الاوفيس التي لدي 2016 اللغة العربية
      وجزاكم الله خير الجزاء
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...