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

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

قام بنشر

 

السلام عليكم ورحمة الله وبركاته إخوتي الأكارم:

نتابع من حيث وصلنا:كما يمكن وضع علامة * بدلاً من ظهور الأرقام كما أخبرنا الأستاذ الكريم ياسر في بداية هذا البحث من خلال خصائص النص PasswordChar نضع علامة* بجوارها 

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

Private Sub CommandButton2_Click()

    Dim pp

    pp = MsgBox("خروج نهائي من البرنامج . هل أنت موافق؟؟؟", 36, "!!! تحذير")
    If pp = 6 Then Application.Quit

    TextBox1.SetFocus


End Sub

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

هذا ما استطعت معرفته عن النموذج الأول Start Up والتي تعطينا الإذن بالدخول Sign In فمن كان من إخوتي لديه زيادة أو إضافة أو تنقيح لمعلومة وردت أو سقط منها سهواً فليبادر مشكوراً إلى إسعافي بها لإتمام هذه النقطة من البحث ثم الانطلاق إلى نقطة جديدة جديرة بالاهتمام كما سابقتها...والسلام عليكم

بانتظار ردودكم ومشاركاتكم الكريمة.............

  • Like 1
  • الردود 80
  • Created
  • اخر رد

Top Posters In This Topic

Posted Images

قام بنشر

 

السلام عليكم ورحمة الله وبركاته إخوتي الأكارم:

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

وقد لفت انتباهي أنه قد وضع في حدث المصنف الكود التالي:وأظن غايته إظهار النماذج دون الصفحات وذلك ما أودّ الاستفسار عنه من أساتذتي الكرام الذين يتابعونا مشكورين.

Private Sub Workbook_Open()
    On Error Resume Next
    Application.EnableCancelKey = xlDisabled
    Application.Visible = False
    'Toumana.Show
    STARTUP.Show
End Sub

لنا عودة غداً إن شاء الله تعالى حيث أنني قد قارب دوامي على الانتهاء اليوم

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

قام بنشر

أخي الحبيب أبو يوسف

بالفعل كما ذكرت في حدث فتح المصنف يتم إلغاء مفتاح الهروب Esc لئلا يتحايل المستخدم ويلغي الأكواد ثم يأتي السطر التالي

Application.Visible = False

ويقوم السطر بإخفاء التطبيق (تطبيق الإكسيل)

ثم آخر سطر يقوم بإظهار النموذج (الفورم)

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

السلام عليكم ورحمة الله وبركاته أخي الحبيب أبو البراء..

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

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

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

P

 

إخوتي الكرام السلام عليكم ورحمة الله وبركاته ...اللهم يا من علم داود علمنا ويا مفهم سليمان فهمنا...على بركة الله نبدأ....

 

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

 

سنقوم بهذا البحث بتقسيم هذا النموذج إلى ثلاثة أجزاء هامة ورئيسية الأول منها لكتابة وترحيل البيانات إلى ورقة DATA ، والثاني لاستدعاء سند صرف معين بأحد رقمين (برقم السند أو حسب رقم الشيك) حيث تستطيع من خلاله البحث والتعديل والطباعة، وجزء ثالث يعتني بمسح البيانات ومسح النموذج:

أما من حيث ملاحظة الأخ الكريم عبد العزيز البسكري المحترم أنه وضع ليبلات فوق بعضها فالغاية منها هي أنه عندما يكتب سند صرف جديد تبقى الليبلات الخارجية ظاهرة مثلاً: رقم السند ...أما عندما يريد أن يستدعي سنداً ما فتظهر تلك المخفية ..مثلاً: بحث برقم السند...ولذلك اقتضى التنويه...

 

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

- ملاحظة: يرجى من الإخوة الكرام متابعي هذا العمل إسداء آرائهم ونصائحهم إن كنا نسير على الطريق الصحيح ...تقبلوا تحياتي...السلام عليكم

 

سند صرف جديد.png

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

استاذى الكريم

وبعد اذن الاستاذ ضاحى

سوف اقدم شرح بسيط حسب ما يتسع لى الوقت 

سند صرف جديد.png

 

نمسك اول شئ رقم 1 كما هو موضح بالصورة عاليه 

وهى عباره عن تشيك بوكس جديد  

 وتشيك بوكس بحث وتعديل وطباعه

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

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

ما هو الكود الذى يتم تنفيذه عند الضغط على التشيك بوكس جديد

اضغط دبل كليك على التشيك بوكس ستجد الكود التالى 

Private Sub ChNew_Click()
On Error GoTo 1
If ChNew.Value = True Then
Clear
ChCmdSearch.Value = False
ChCash.Value = True
CmdSearch.Visible = False
TxNo.Visible = True
LabNo.Caption = "ÑÞÜÜã ÇáÓäÜÏ / "
CmdPrint.Visible = False
CmdSave.Visible = True
CmdEdit.Visible = False
 ChCash.Value = True
 Lpay.Caption = "ÓäÏ ÕÑÝ"
CkqTxt.Visible = False
Lbl40.Visible = False

ChNames.Visible = True
L1.Visible = False
Chabout.Visible = True
L2.Visible = False
ChBank.Visible = True
L3.Visible = False

m = sheet1.[M9]
mm = 9
    Do Until sheet1.Cells(mm, "a").Text = ""
               mm = mm + 1
    Loop
   TxNo.Value = mm + 1 - 10 + m


TxDate.Text = Format(Date, "yyyy/mm/dd")
End If
1 End Sub

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

فالاستاذ ضاحى بعد ما رسم عدد 2 تشيك بوكس قام بتغيير الاسم 

CheckBox1 تم تغيير الاسم " name"   الى ChNew

CheckBox2 تم تغيير الاسم " name"   الى ChCmdSearch

وللتاكد من ذالك

قم بالوقوف على التشيك بوكس جديد ستجد فى الخصائص اول سطر هو ( Name)  وبجواره  ChNew  وكذالك بكل الادوات والازرار الموجوده بالفورم

الاسم  ChNew  الذى قام بتغيره الاستاذ ضاحى هو الاسم الذى يعتمد علية فى كتابه الاكود 

فلولاحظنا بالكود عاليه 

اول سطر

Private Sub ChNew_Click()

ستجد ان الاسم هو ChNew وليس CheckBox1

ثم بعد ذالك السطر التالى

On Error GoTo 1

وهو يعنى ان فى حال حدوث اى خطأ يقوم الكود بالانتقال الى رقم 1  ثم يستأنف عمله  

1 End Sub

فحينما يحدث خطأ ما بالكود وينتقل الى رقم 1 ثم يباشر الكود تنفيذ مهامه سيجد نفسه وصل الى End sub  نهاية الكود

بعد كدا السطر التالى 

If ChNew.Value = True Then

تم استخدام if  

لو كان التشيك بوكس اللى هو اسمه " ChNew"  يساوى true  أى تم الضغط عليه وعمل علامه صح then  نفذ ما يلى 

Clear

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

كان ممكن يكون السطر بالشكل التالى 

Call Clear

بمعنى وضع كلمة Call قبل Clear  وهى تعنى الاتصال بالكود Clear لتنفيذه  فيقوم الكود الاساسى بعمل توقف مؤقت ويذهب الى الكود  Clear لتنفيذه ثم يعود لاستئناف الكود مره اخرى بعد الانتهاء منه

الكود Clear هو

Sub Clear()
TxNo = vbNullString
TxDate = vbNullString
TxName = vbNullString
TxDescription = vbNullString
TxAmount = vbNullString
TxChDate = vbNullString
TxChBank = vbNullString
TxChNo = vbNullString
ChCash.Value = False
ChChaqe.Value = False
TxDate.Text = Format(Date, "yyyy/mm/dd")
End Sub

 

طبعا لازم نشرح كل سطر بهذا الكود وهو كود Clear

بختصار TxNo  هو اسم تكست بوكس وقام الاستاذ ضاحى بتغيير اسمه كما وضحنا سابقا 

طيب اين هو هذا التكست لو نظرت للفروم ستجد  رقم السند /  وبجواره كمبوبكس لو قمت بتصغير الكمبوكس ستجد تحته تكست بوكس لو وقفت علية ونظرت لخصائصه ستجد اسمه ( Name )    هو  TxNo

طيب سؤال واحد هيقولى هو ليه واضع التكست بوكس والكمبوبكس فى التصميم فوق بعض 

الاجابه هى عند الضغط على جديد سيظهر التكست بوكس وبه رقم السند  ويختفى الكمبوبكس

وعند الضغط على تشيك بحث يظهر الكمبوبكس لاختيار رقم السند المراد البحث عنه ويختفى التكست بوكس

طيب ماذا يعنى هذا السطر

TxNo = vbNullString

هو يعنى افرغ محتوى التكست بوكس اللى هو اسمه TxNo  يعنى جعله فارغ وكان ممكن يكون بالشكل التالى

TxNo = ""

وكان ممكن يكون كدا

TxNo = Empty

لكن الاستاذ ضاحى كتبه بهذه الطريقه

TxNo = vbNullString

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

وهكذا باقى الاسطر بالكود حتى نصل الى 

ChCash.Value = False
ChChaqe.Value = False

السطرين السابقين 

التشيك بوكس رقم 3 والتشيك بوكس رقم 4

قم بالوقوف على  تشيك بوكس نقدا  وانظر بالخصائص ما هو اسمه ستجده ChCash

وايضا قم بالوقوف على تشيك بوكس شيك وانظر بالخصائص  ما هو اسامه ستجده ChChaqe

يبقى احنا عرفنا ماذا يعنى ChCash وماذا يعنى ChChaqe  

طيب عند الضغط على تشيك بوكس جديد نريد ان يكون التشيك بوكس نقدا والتشيك بوكس شيك بدون علامة صح ليكون جاهز امام المستخدم الخيارين ليختار اى منهما

ولجعل التشيك بوكس بدون علامه صح  قلنا انه = False

ChCash.Value = False

ثم ننتقل الى السطر الاخير وهو 

TxDate.Text = Format(Date, "yyyy/mm/dd")

TxDate هو تكست بوكس بتاع التاريخ 

وكما قلنا سابقا كيف يتم تغيير مسمى التكست بوكس الى اى مسمى نريده ولكن بشرط بعد التغيير للاسم لازم نلتزم به فى كتابته داخل الاكواد

فهنا التكست بوكس بتاع التاريخ اسمه TxDate  طيب ليه كتب  

TxDate.Text 

.Text 

لاننا عندما نتعامل مع تاريخ نتعامل معه كانه نص  ثم قلنا = 

Format(Date, "yyyy/mm/dd")

يعنى ادرج تاريخ اليوم بالتكست بوكس وبالتنسيق التالى  

"yyyy/mm/dd"

ثم يتنهى الكود بتاع Clear  ويعود الكود الى الكود الاصلى وهو 

Private Sub ChNew_Click()

لو رجعنا للكود سنجد اننا قمنا بشرح الاسطر التالية 

Private Sub ChNew_Click()
On Error GoTo 1
If ChNew.Value = True Then
Clear

ان شاء الله المره الجايه سنبدء من هذا السطر

ChCmdSearch.Value = False

اتمنى ان اكون وفقت بشرح 

تقبلوا تحياتى اخوكم حسام

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

P

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

 

 

 

 

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

P

 

السلام عليكم إخوتي الكرام...جزى الله خيراً من شارك ومن مر على موضوعنا مروراً عطراً ...وما زلنا ننتظر ...نبدأ على بركة الله تعالى:

 

حيث كما أسلف الأخ الصقر أن مفترق الطرق بين القسمين الأول والثاني هو زر الاختيار جديد المسمى ChNew

Private Sub ChNew_Click()
    On Error GoTo 1
    If ChNew.Value = True Then
        Clear
        ChCmdSearch.Value = False
        ChCash.Value = True
        CmdSearch.Visible = False
        TxNo.Visible = True
        LabNo.Caption = "رقــم السنـد / "
        CmdPrint.Visible = False
        CmdSave.Visible = True
        CmdEdit.Visible = False
        ChCash.Value = True
        Lpay.Caption = "سند صرف"
        CkqTxt.Visible = False
        Lbl40.Visible = False

        ChNames.Visible = True
        L1.Visible = False
        Chabout.Visible = True
        L2.Visible = False
        ChBank.Visible = True
        L3.Visible = False

        m = sheet1.[M9]
        mm = 9
        Do Until sheet1.Cells(mm, "a").Text = ""
            mm = mm + 1
        Loop
        TxNo.Value = mm + 1 - 10 + m


        TxDate.Text = Format(Date, "yyyy/mm/dd")
    End If
1 End Sub

فعندما نختار الزر "جديد" يوقف العمل بزر البحث وسيفعل حقل قيمة المبلغ وكذلك ليبل رقم السند وحقل الحفظ دون الطباعة وعند ما يفعل حقل الدفع نقداً يوقف العمل بمجال الشيكات وكذلك يبدأ الترقيم استناداً إلى الخلية M9 في Sheet1 ليبدأ الترقيم في العمود A  بدءاً من الرقم في M9   وفي حقل التاريخ يوضع التاريخ بتنسيق معين.

 

أما التفقيط فيؤخذ من Module2 وهنا اختار العملة "درهم" و أجزاؤه "فلس"

 

تم تعديل بواسطه محمد حسن المحمد
  • Like 1
قام بنشر

على الرغم من قلة المشاركات سأتابعه حتى يقضي الله أمراً كان مفعولاً وسأفترض أن المنتدى خالياً 

فأسلم على نفسي تحية من عند الله مباركة طيبة.... أقول لنفسي:بصراحة أنتِ تعلمتِ الكثير ما لم تكوني تعلمينه فاعلمي أن فوقك علام الغيوب

فما علمك أيتها النفس أنت وكل من عليها إلا كطائر أخذ قطرة من ماء بحر واسع ...فتوبي وأنيبي وأقبلي ولا تعرضي عن ذكر ربك 

(ومن أعرض عن ذكري فإن له معيشة ضنكاً ونحشره يوم القيامة أعمى) ولا يغرنك إقبال البشر أو إدبارهم فستحاسبين وتجازين ...

واذكري قول ربك (وما كان ربك نسياً) أي ما تفعلين من خير مع الإيمان فستثابين عليه وتؤجرين...سلام على نفسٍ تزكى لتصبح نفساً مطمئنة راضية ، وويل لتلك التي تدسى لتصبح تعيش لتأكل وتتنعم بنعيم زائل.

  • Like 1
قام بنشر

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

قام بنشر

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

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

قام بنشر

P

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

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

ففي وضع اسم مستحق السند توجد إمكانيتان الأولى باختيار اسم من القائمة بواسطة زر الاختيار حيث يلغى تفعيل كتابة اسم تلقائياً ويفعل CombNames

Private Sub ChNames_Click()

    On Error GoTo 1

    If ChNames.Value = True Then

CombNames.Visible = True

        'TxName.Value = CombNames.Value

ElseIfChNames.Value = False Then

CombNames.Visible = False

    End If

1 End Sub

أما الاختيار الثاني فكتابة الاسم مباشرة يلغى تفعيل CombNames ويفعل TxName فإن حركت الأول ستجد الثاني أسفل منه.

Private Sub TxName_Change()

End Sub	

ثم ننتقل إلى سبب صرف هذا السند والذي عبر عنه بكلمة (وذلك عن /) وهنا كما رأينا بحقل الاسم نجده هنا عند تفعيل الكومبوبوكسCmbabout يلغى تفعيل Chabout والعكس صحيح في الحالة الثانية لأنه زود ورقة العمل تحت اسم About بأسباب صرف معينة وترك المجال لك لتكتب السبب الذي تريد عند تفعيل Chabout.

Private Sub Cmbabout_Change()
TxDescription.Value = Cmbabout.Value
Chabout.Value = False
End Sub

لاحظ كود وصف التكست TxDescription:

Private Sub TxDescription_Change()
	
End Sub

ثم ننتقل إلى طريقة صرف السند وهنا وضعها ضمن مجالين للصرف:

الأول منهما نقداًChCash:فعندما يكون هذا الخيار محققاً يلغى تفعيل الصرف بشيك كما يلغى تفعيل الإطارFrame5   الذي يحتوي على بيانات الشيك.لتظهر عبارة سند صرف نقدي كعنوان لسند الصرف أعلى الصفحة...

Private Sub ChCash_Click()
    On Error GoTo 1
    If ChCash.Value = True Then
ChChaqe.Value = False
        Frame5.Visible = False
Lpay.Caption = " سند صرف / نقدي"
    End If

1 End Sub
الثاني منهما شيك ChChaqe حيث يتم عكس عملية الصرف الأولى يلغى تفعيل صرف نقدي كما يفعل الإطار5( Frame5) ويظهر التاريخ بصيغة معينة كما أنه لا يفعل الكومبو بانك ويظهر أعلى صفحة السند عنوان (سند صرف / شيك):
Private Sub ChChaqe_Click()
    On Error GoTo 1
    If ChChaqe.Value = True Then
ChCash.Value = False
        Frame5.Visible = True
TxChDate.Value = Format(Date, "yyyy/mm/dd")
Lpay.Caption = "سند صرف / شيك"
CmbBank.Visible = False
    End If
1 End Sub

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

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

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

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

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

بارك الله فيك أستاذنا محمد حسن المحمد على الشرح المميّز و الممتاز ..جزاك الله خيرًا و زادها بميزان حسناتك

                                                 عبد العزيز البسكري

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

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

بارك الله فيك أستاذنا محمد حسن المحمد على الشرح المميّز و الممتاز ..جزاك الله خيرًا و زادها بميزان حسناتك

                                                                                                                               عبد العزيز البسكري

السلام عليكم أخي الحبيب عبد العزيزالبسكري 

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

فلله الفضل والمنة...

المحب لكم أبو يوسف

تم تعديل بواسطه محمد حسن المحمد
بعض العتب .والفرح بعودة الغياب.
  • Like 1
قام بنشر

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

بارك الله فيك أستاذنا محمد حسن المحمد على الشرح المميّز و الممتاز ..جزاك الله خيرًا و زادها بميزان حسناتك

                                                                                                                               عبد العزيز البسكري

السلام عليكم أخي الحبيب عبد العزيزالبسكري 

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

فلله الفضل والمنة...

المحب لكم أبو يوسف

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

من خلال شروحاتك المميّزة أستاذنا الغالي محمد حسن المحمد يبدو لي أنّك الغطّاس الماهر الذي سينقذنا جميعًا من هول بحر الأكواد و أمواجه .. بارك الله فيك و جزاك الله خيرًا ..لم نكن لنتركك وحدك فقط كنت مسافرًا غائبًا عن المنزل وليس معي أي وسيلة إتّصال .. البركة فيك أنتَ سيّدي الكريم .. واصل وفّقك الله و سدّد خطاك ..

 

123.gif

  • Like 1
قام بنشر

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

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

والسلام عليكم

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

P

 

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

 

نكمل بحول الله وقوته من حيث توقفنا، قلنا أنه قام السيد المحترم ضاحي الغريب بتذييل سند الصرف بالمعلومات الضرورية لتوثيق السند ومصداقيته وبتلك الأخرى الضرورية للتواصل مع الجهة المصدرة للسند وهناك نقوم بملء الحقل النصي بالمطلوب حسب صفة كل عضو ليقوم بمهره بتوقيعه الكريم بعد الطباعة ..أما ليبل كتابة عنوان الجهة المصدرة للسند LaST تكتب عنوانها:

Private Sub LaST_Click()

End Sub

وليبل آخر لكتابة أرقام الهواتف...والمسمى  LaTe:

Private Sub LaTe_Click()

End Sub

وبذلك نكون قد انتهينا من بحث القسم الأول ..راجين من الله التوفيق و السداد.

 

ب – القسم الثاني: بحث وتعديل وطباعة حيث نلاحظ أن هذا القسم يعتني باستدعاء البيانات التي أدخلت من قبل والتعامل معها حسب مقتضى الحاجة( تعديلطباعة) وسنرى أن طريقة التعامل مع البحث تختلف عن كتابتها وترحيل (فرق بين من يصدر ومن يستورد) وهنا عصا القيادة لهذا الجانب يتحكم بها زر ChCmdSearch وهنا نرى وجوب تفعيل أزرار وإيقاف أخرى عن العمل فبداية نرى Clear التي عرفنا وظيفته سابقاً وكما رأينا بمشاركة الأستاذ ضاحي الآنفة الذكر(تفريغ حقول العمل من أية كتابات سابقة)، إلغاء تفعيل (تسجيل سند ) جديد ،والترقيم الجديد ،والحفظ للجديد.

وبالمقابل تفعيل (الكومبوسيرتش) قائمة البحث ، والطباعة ، والتحرير وإظهار أعلى شاشة السند (سند صرف) وزر CkqTxt التحقق.

Private Sub ChCmdSearch_Click()
    On Error GoTo 1
    If ChCmdSearch.Value = True Then
        Clear
        ChNew.Value = False
        'TxNo.Visible = False
        CmdSearch.Visible = True
        CmdPrint.Visible = True
        CmdSave.Visible = False
        CmdEdit.Visible = True
        LabNo.Caption = "بحث برقــم السنـد /"
        Lpay.Caption = "سند صرف"
        ChNames.Visible = False
        CkqTxt.Visible = True
        Lbl40.Visible = True
        CkqTxt.Text = ""

        L1.Visible = True
        Chabout.Visible = False
        L2.Visible = True
        ChBank.Visible = False
        L3.Visible = True
    End If
1 End Sub

 

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

ننتقل إلى طريقة البحث برقم الشيك:

Private Sub ComboBox1_Change()
    sheet1.Activate
    II = 9
    Do Until sheet1.Cells(II, "F").Text = ""
        If ComboBox1.Text = sheet1.Cells(II, "F").Text Then
            Cells(II, "F").Activate
            ChCash.Value = False
            ChChaqe = True
            CmdSearch = ActiveCell.Offset(0, -5).Text

        End If
        II = II + 1
    Loop

End Sub

 

يتم عن طريق تفعيل الورقة1 (Sheet1 ) حيث تبدأ المعلومات في الصف9 في العمود F  

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

إخوتي الأكارم  يرجى التكرم بإيجاد إجابة شافية كافية،والله في عون العبد ما كان العبد في عون أخيه.

والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين.

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

أخوكم المحب لكم أبو يوسف

 

تم تعديل بواسطه محمد حسن المحمد
تنسيق أكواد
قام بنشر

P

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

 

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

Private Sub CmdSearch_Change()
    D_Search
End Sub

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

 

أطلق اسم TDebtor على الخاص بالمدير وحقول التعريف بجهة إصدار السند،وقد صمم كوداً لتظهر الأسماء المسجلة في ورقة العمل DATA كما يلي:

Private Sub TDebtor_Change()

End Sub

 

Private Sub UserForm_Initialize()

''''''''''''''''''''''''''''''''''''''''''''''''''''''
    m = sheet1.[M9]
    mm = 9
    Do Until sheet1.Cells(mm, "a").Text = ""
        mm = mm + 1
    Loop
    TxNo.Value = mm + 1 - 10 + m



    TxDate.Text = Format(Date, "yyyy/mm/dd")
    ChCmdSearch.Value = True
    TxNo.Locked = True
    CombNames.Visible = False
    Cmbabout.Visible = False

    TextBox5.Value = sheet1.[m2]
    TextBox4.Value = sheet1.[m3]
    TextBox3.Value = sheet1.[m4]
    TDebtor.Value = sheet1.[m6]
    LaST.Caption = sheet1.[m7]
    LaTe.Caption = sheet1.[m8]
End Sub

تم عرض تاريخ تحرير السند وهنا تم إعداد مربعات نصوص مساوية لما يقابلها من نصوص في العمود حيث الخلية كما يلي:

 

أسم الشركة

 

شركة اوفيسنا التعليمية

 

M2

 

TextBox5

 

المستلم

 

خالد خليل

 

M3

 

TextBox4

 

المحاسب

 

ضاحي الغريب

 

M4

 

TextBox3

 

المدير

 

خبور خير

 

M6

 

TDebtor

 

عنوان الشركة

 

شركة أوفيسنا التعليمية  - ميدان أوفيسنا - شارع 10

 

M7

 

LaST

 

تليفونات وايميل وفاكس

 

ت : 322145678  فاكس :- 325641471

 

M8

 

LaTe

 

  وبذلك أكون قد عرضت القسم الثاني من البحث بما أمدني الله ...وتركت لإخوتي الكرام التفضل بشرح ما لم يدركه علمي الضحل ...فهم أجدر بذلك وأقدر عليه؟

والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين.

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

أخوكم المحب لكم أبو يوسف

يتبع إن شاء الله تعالى....

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

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

أتمنى أن تكون و جميع أعضاء منتدى أوفيسنا بألف خير

عودة ميمونة و موفّقة بإذن الله .. إشتقنا لكم و الله

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

 

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

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

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

الحمد لله رب العالمين ...الحمد لله الذي بنعمته تتم الصالحات

وكما قلت أخي الحبيب عبد العزيز عوداً حميداً وجزاكم الله خيراً

تهانينا لكل أعضاء المنتدى الكرام .....أسبوع طويل مر دون أوفيسنا.

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

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

P

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

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

 

1 – مسح جميع البيانات CmbClearSheet1:حيث يقوم الزر بالضغط عليه بمسح البيانات من الورقة DATA  للبدء بورقة جديدة خالية من البيانات التي تم تحميلها إليها بعد عرض رسالة للسماح جميع البيانات :

Private Sub CmbClearSheet1_Click()
    Clear_Sheet1
End Sub

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

Sub Clear_Sheet1()
    Dim Msg As String
    Dim Amr As Integer
    With sheet1
        .Activate
        .[A9:I1000].Select

        Msg = " هل انت متأكد من مسح جميع بيانات سندات الصرف "
        Amr = MsgBox(Msg, vbYesNo)
        If Amr = vbYes Then
            Selection.ClearContents
        End If

        Range("A9").Select
    End With
End Sub

2- مسح الفورم: CmdClear وهنا يقوم بمسح البيانات التي دوّنت على النموذج كما هو موضّح أدناه:

Private Sub CmdClear_Click()
    Clear
End Sub

3- زر طباعة: CmdPrintعندما تريد طباعة سند تم تصميم عرض وارتفاع وهوامش المستند على جانبيه الأيمن والأيسر."يرجى التداخل لشرح هذا الكود".. 

Private Sub CmdPrint_Click()

    On Error GoTo 0
    If CmdSearch.Text = "" Then
        MsgBox "من فضلك أدخل رقم السند", vbOKOnly, "طباعة خطأ!"
        Exit Sub
    Else
        Frame6.Visible = False
        Frame11.Visible = False
        'TextBox1.ShowDropButtonWhen = 0
        Toumana.Zoom = (Toumana.Zoom * 1)
        Toumana.Width = (Toumana.Width * 1)
        Toumana.Height = (Toumana.Height * 1.1)
        Toumana.Left = 200: Toumana.Top = 30
        Toumana.PrintForm
    End If
    Call RestForm
0 End Sub

4- التعديل: وهنا التعديل على بيانات النموذج: CmdEdit

Private Sub CmdEdit_Click()
    Amendment
End Sub

 

5- إغلاق: وهنا يتم إغلاق النموذج فتدخل إلى ورقة البيانات...

 

Private Sub CmdExit_Click()
    On Error GoTo 1
    Application.Visible = True
    sheet1.Activate
    Unload Me
1 End Sub

 

 

 

 

6- حفظ وخروج:يتم حفظ البيانات ثم الخروج من التطبيق:

Private Sub CommandButton1_Click()
    Me.Hide
    ActiveWorkbook.Save
    Workbooks.Application.Quit
End Sub

 

 

كما أننا نلاحظ أن النموذج يطالبك بملء البيانات المطلوبة كاملة قبل الحفظ والطباعة

فعندما تضع البيانات عدا المبلغ تطالبك رسالة بإدخال المبلغ، وكذلك الاسم ثم سبب الصرف حسب تسلسل الخطأ قبل الترحيل أي:( لا يتم ترحيل البيانات إلا إذا كانت متكاملة ضمن حقول النموذج):

Sub AddNew()
    Dim Msg As String
    Dim Amr As Integer
    Dim totalrows As Long
    Dim str As String
    On Error GoTo 1
    If TxAmount.Text = "" Then
        MsgBox "من فضلك ادخل المبلغ", vbOKOnly, "المبلغ خطأ!"
        Exit Sub
    End If
    If TxName.Text = "" Then
        MsgBox "من فضلك ادخل الأسم", vbOKOnly, "الأسم خطأ!"
        Exit Sub
    End If
    If TxDescription.Text = "" Then
        MsgBox "من فضلك ادخل سبب الصرف", vbOKOnly, "الوصف خطأ!"
        Exit Sub
    End If
    If ChChaqe.Value = False And ChCash.Value = False Then
        MsgBox "من فضلك أختار طريقة الصرف ", vbOKOnly, "الصرف!"
        Exit Sub
    ElseIf ChChaqe.Value = True And TxChNo.Text = "" Then
        MsgBox "من فضلك أدخل رقم الشيك ", vbOKOnly, "رقم الشيك!"
        Exit Sub
    ElseIf ChChaqe.Value = True And TxChDate.Text = "" Then
        MsgBox "من فضلك أدخل تاريخ الشيك ", vbOKOnly, "تاريخ الشيك!"
        Exit Sub
    ElseIf ChChaqe.Value = True And TxChBank.Text = "" Then
        MsgBox "من فضلك أدخل البنك ", vbOKOnly, "البنك!"
        Exit Sub
    End If
    totalrows = sheet1.Cells(Rows.Count, "A").End(xlUp).Row
    If totalrows < 8 Then
        totalrows = 8
    Else
        totalrows = totalrows
    End If

    sheet1.Cells(totalrows + 1, 1) = Format(TxNo.Text, "0")
    sheet1.Cells(totalrows + 1, 2) = Format(TxDate.Text, "yyyy/mm/dd")
    sheet1.Cells(totalrows + 1, 3) = TxName.Text
    sheet1.Cells(totalrows + 1, 4) = TxDescription.Text

    If ChCash.Value = True Then
        sheet1.Cells(totalrows + 1, 5) = Format(TxAmount.Text, "0")
    ElseIf ChChaqe.Value = True Then
        sheet1.Cells(totalrows + 1, 8) = Format(TxAmount.Text, "0")
        sheet1.Cells(totalrows + 1, 6) = Format(TxChNo.Text, "0")
        sheet1.Cells(totalrows + 1, 7) = Format(TxChDate.Text, "yyyy/mm/dd")
        sheet1.Cells(totalrows + 1, 9) = Format(TxChBank.Text, "0")
    End If
    MsgBox "تم ترحيل وحفظ السند بنجاح"
    'Sheet1.Range("A9:I" & totalrows + 1).Sort Key1:=Sheet1.Range("A9"), Order1:=xlAscending


    Msg = "هل تريد طباعة السند"
    Amr = MsgBox(Msg, vbYesNo)
    If Amr = vbYes Then
        ChCmdSearch.Value = True
        CmdSearch.Text = TxNo.Value
        CmdPrint_Click
    End If
    Clear

    m = sheet1.[M9]
    mm = 9
    Do Until sheet1.Cells(mm, "a").Text = ""
        mm = mm + 1
    Loop
    TxNo.Value = mm + 1 - 10 + m



1 End Sub

 

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

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

والحمد لله الذي بنعمته تتم الصالحات والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين

أخوكم المحب لكم أبو يوسف.

 

 

 

 

بيانات.png

  • Like 1
قام بنشر

بسم الله والصلاة والسلام على رسول الله وعلى آله وصحبه ومن والاه أما بعد:

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

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

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

فهلا أكملتم المشوار.

والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين

أخوكم المحب لكم أبو يوسف.

  • Like 2
قام بنشر

أخي الحبيب  أ/ محمدحسن

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

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

واللهم يجعله في ميزان حسناتك

مع  تحياتي واحترامي

  • Like 1

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.




×
×
  • اضف...

Important Information