كل عام وانتم بخير .. واريد الاستفسار عن فكرة اردت تطبيقها ولم استطيع ..
الفكرة انى اردت ان تكون اسماء Labels في حالة اذا كان الفورم متعدد اللغات يكون حسب قاعدة IF
( بمعنى اذا وجدت حرف A في الخلية المحددة ( في شيت محدد ) اجعل الاسماء كالتالى (بالعربي) و اذا لم تجد اجعلهم كالتالى (بانجليزي) )
Private Sub UserForm_Activate()
Dim way As String
way = Sheets("Log").Range("K1")
'Me.ImgS.Visible = False
If way = "AR" Then
Me.lblMain.Caption = "اسم الموظف"
Me.lblSelect.Caption = عنوان الموظف"
Else
Me.lblMain.Caption = "Employee Name"
Me.lblSelect.Caption = "Employee Address"
End If
End Sub
السؤال انه اختصارا للكلام اردت وضع هذا الكود في ماكرو خارجى واحد و اربطه على جميع الفورمات و لكن صادفنى مشكلة انه يجب كتابة اسم الفورم في الماكرو الخارجى حتى يستطيع الماكرو التعرف عليه
لجئت الى فكره اخرى في حالة ان اردت ان يكون الفورم متعدد اللغات وهى كالتالى :
Private Sub cmbSct_Change()
If cmbSct.Value <> "" Then
If NotNow Then Exit Sub
Vrange = "IEmployee"
Me.lblFN.Text = Application.VLookup(cmbSct.Value, Sheets("Log").Range(Vrange), 2, False)
Me.lblMN.Text = Application.VLookup(cmbSct.Value, Sheets("Log").Range(Vrange), 3, False)
Me.lblLN.Text = Application.VLookup(cmbSct.Value, Sheets("Log").Range(Vrange), 4, False)
Me.OptMl.Value = Application.VLookup(cmbSct.Value, Sheets("Log").Range(Vrange), 5, False)
حيث انى اقوم بكتابة الاسماء في الشيت و اجعل الفورم يبحث عنها و شيظهرها طبعا بغض النظر عن لغتها .. هذه الفكرة نجحت و الفائدة منها انها تتمكن من اى عدد من اللغات
ولكن واجهت نفس المشكلة انى لو وضعت الكود فى ماكرو خارجى لكى يشتغل مع كل الفوورمات بناء على الكلمة اللى هيبحث عنها في كل فورم .. بس واجهنى مشكلة انى لازم اكتب اسم الفورم في الماكرو ولو كتبت اسم الفورم مش هيشتغل على كل الفورمات
ارجوا ان اكون قدرت اوضح الفكرة و هى ببساطة كيف اقدر اشغل ماكرو خارجى على كل الفورمات بدون ما اكتب اسم الفورم
اشكرك على سعة صدرك ووقتك واتمنى لو عندك الحل تشرحه لى لانى مؤمن ان في مجال البرمجة كل شئ ممكن بس احيانا بيكون الحل مش معروف
وكل عام وانتم بخير
وشكرا
واسف ع الازعاج