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

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

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

راائع استا ذ / احمد

وهو المطلوب تماما ولكن لي بعض الطلبات

1- ان يظهر الاسم الاول عند ظهور الفورم في البداية

2- ان يتم تحديد نطاق البيانات الموجود بالمرفق في العمود b

3- ( ان امكن ) عند انتهاء البيانات من هذا العمود اظهار رسالة تفيد انه ( انتهت البيانات )

 

ولماذا وضعت هذه الجملة (  Dim i As Integer

اعلي امر الزر
 

 

جزيل شكري وامتناني

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

السلام عليكم

 

بعد اذن الاستاذ احمد عبدالناصر

 

تعديل على الكود إن شاء الله يفي بالغرض

 

'*********************
' مدى البيانات
Private Const A_nm As String = "$B$5:$B$221"
Dim i As Integer
Private Sub CommandButton1_Click()
If Range(A_nm).SpecialCells(2).Count = i Then MsgBox " ( انتهت البيانات ) ": Exit Sub
TextBox1.Value = Sheets("Sheet1").Cells(i + 5, "b")
i = i + 1
End Sub
Private Sub UserForm_Activate()
CommandButton1_Click
End Sub

 

تحياتي

قام بنشر

السلام عليكم

الاستاذ القدير / عباد

 

بارك الله فيك ورااائع كعادتك

والف مليون حمد الله علي السلامة

ولا اطال الله غيبتك عنا بهذا الطول ... ولعله خيرا

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

قام بنشر

السلام عليكم

حل الاستاذ العبقري / عباد  ... اتم حل الاستاذ / احمد عبد الناصر

ولكن لي طلب

لماذا وضعت هذه الجملة (  Dim i As Integer

اعلي امر الزر

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


 

قام بنشر

السلام عليكم

 

تحياتي للجميع 

 

-اولا كود ممتاز استاذ عباد

 

-بالنسبة   Dim i As Integer  فلو وضعت في في امر الزر فسيعيد الكود تعريفها في كل مرة تضغط علي الزر اي سيجعل i في كل ضغطه زر تساوي 0 .

اما بتعريفها في البداية فيحفظ قيمتها التي نغيرها .(طالما الفورم مفتوح و بعد غلقه ترجع 0 كالبدايه)

 

والله اعلم

قام بنشر

اخي الحبيب حماده عمر

اشكرك جزيل الشكر على مرورك العطر

الله يسلمك من كل شر

نحمد الله على كل حال شواغل الدنيا

إن شاء الله نتواجد عما قريب

جزاك الله خير

 

الاخ الفاضل هاني مصطفى

الحمد لله ان الكود يعمل معك

 

 لماذا وضعت هذه الجملة (  Dim i As Integer

 

وضع المتغير في اعلى الواجهه يسمى متغير عام

اي بالامكان استدعاء المتغير من اي كود اخر

وهنا استخدم عام ليتم استخدامه عند الضغط على الزر

حاول تضيف المتغير وسط الكود وجرب استخدم الزر

بتلاحظ انه لم يعمل لانك وضعته في وضع خاص وسط الكود

اي بمعنى انه لم يتعرف البرنامج على قيمة المتغير كي يضيف له رقم 1

لكي يعطيك قيمة السطر التالي

i = i + 1

هذا والله اعلم والسموحه على الاطاله

حبيت افصل لك الاجابه كي تستوعب بشكل افضل

 

 

قام بنشر

السلام عليكم

عذرا اخي احمد لم ارى ردك

ويمكن استخدام المتغير في وسط الكود

بتغير الـ Dim إلى Static

Static i As Integer

هذا النوع من المتغيرات التي تخزن القيمة وقت التشغيل
 

قام بنشر

السلام عليكم

 

جرب هذا 

 

Private Const A_nm As String = "$B$12:$B$23"
Dim i As Integer
Private Sub CommandButton1_Click()
For d = 2 To 7
Cells(i + 11, d + 1) = Me.Controls("textbox" & d).Text
Next
If Range(A_nm).SpecialCells(2).Count = i Then MsgBox " ( ÇäÊåÊ ÇáÈíÇäÇÊ ) ": Exit Sub
TextBox1.Value = Sheets("Sheet1").Cells(i + 12, "b")
i = i + 1
For d = 2 To 7
Me.Controls("textbox" & d) = ""
Next
End Sub
Private Sub UserForm_Activate()
CommandButton1_Click
End Sub

 

تحياتي

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