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

عمل قناع للإدخال


إذهب إلى أفضل إجابة Solved by رشبد,

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

السلام عليكم ورحمة الله وبركاته
أحاول عمل ملف إكسيل لمتابعة حساب العملاء . لاكنى أجاهد للبحث عن (Sheet) كل عميل حيث  أنهم حوالي 150 عميل.

ثم عرفت موضوع قناع الأدخال . كيف يمكن عمل قناع إدخل للفواتير وأخر للدفعات وأخر ل مردودات المبيعات للملف المرفق.

 

Customers-Project-01.xlsx

رابط هذا التعليق
شارك

2 ساعات مضت, حسونة حسين said:

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

تفضل جرب هذا

 

Customers-Project-01.xlsb 525.36 kB · 2 downloads

عفواً أخي .... لم أجد تغيير أو قناع إدخال في الملف !!!

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

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

الكود  المقترح من الأستاد @حسونة حسين يشتغل بشكل جيد وينفد المطلوب 

مجرد اقتراح 

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

Private Sub Worksheet_Activate()
    Test
End Sub

 

في حالة الرغبة باستخدام الاكواد بدل الصيغ الموجودة على جميع اوراق العملاء ضع الكود التالي في حدث ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim lr As Long, n As Double, i As Long
    Dim totalD As Double, totalE As Double
    Dim WS As Worksheet: Set WS = Sh
    
    If InStr(1, WS.name, "عميل") = 0 Then Exit Sub
    
    If Not Intersect(Target, WS.Columns("D:E")) Is Nothing Or Not Intersect(Target, WS.Range("G6")) Is Nothing Then
        lr = Application.WorksheetFunction.Min(42, _
             Application.WorksheetFunction.Max(WS.Cells(WS.Rows.Count, "D").End(xlUp).Row, _
                                                WS.Cells(WS.Rows.Count, "E").End(xlUp).Row))
        
        WS.Range("F9:F42").ClearContents
        n = WS.Range("G6").Value
        
        For i = 9 To lr
            If WS.Cells(i, "D").Value > 0 Or WS.Cells(i, "E").Value > 0 Then
                n = n + WS.Cells(i, "D").Value - WS.Cells(i, "E").Value
                WS.Cells(i, "F").Value = n
            End If
        Next i
        
        totalD = Application.WorksheetFunction.Sum(WS.Range("D9:D42"))
        totalE = Application.WorksheetFunction.Sum(WS.Range("E9:E42"))
        
        WS.Range("C44").Value = totalD
        WS.Range("C45").Value = totalE
        WS.Range("C46").Value = WS.Range("G6").Value + (totalD - totalE)
    End If
End Sub

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

Dim totals(1 To 3) As Double
Sh.[A1].Value = "قائمة تعاملات عملاء 6 أكتوبر حتى يوم: " & Format(Date, "dd/mm/yyyy")
For i = 1 To 3
    totals(i) = Application.WorksheetFunction.Sum(Sh.Range(Cells(3, i + 2), Cells(152, i + 2)))
    Sh.Cells(153, i + 2).Value = totals(i)
Next i

 

 

 

Customers-Project-02.xlsb

تم تعديل بواسطه محمد هشام.
  • Like 2
رابط هذا التعليق
شارك

11 ساعات مضت, حسونة حسين said:

شغل الكود اخي

إعتبرني مبتدئ في الإكسل .... موش عارف يعني إية أشغل الكود .
وأنا بأفتح الملف طلب مني أفعل إعدادات المايكرو ... وفعلتها ب enable

8 ساعات مضت, محمد هشام. said:

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

الكود  المقترح من الأستاد @حسونة حسين يشتغل بشكل جيد وينفد المطلوب 

مجرد اقتراح 

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

Private Sub Worksheet_Activate()
    Test
End Sub

 

في حالة الرغبة باستخدام الاكواد بدل الصيغ الموجودة على جميع اوراق العملاء ضع الكود التالي في حدث ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim lr As Long, n As Double, i As Long
    Dim totalD As Double, totalE As Double
    Dim WS As Worksheet: Set WS = Sh
    
    If InStr(1, WS.name, "عميل") = 0 Then Exit Sub
    
    If Not Intersect(Target, WS.Columns("D:E")) Is Nothing Or Not Intersect(Target, WS.Range("G6")) Is Nothing Then
        lr = Application.WorksheetFunction.Min(42, _
             Application.WorksheetFunction.Max(WS.Cells(WS.Rows.Count, "D").End(xlUp).Row, _
                                                WS.Cells(WS.Rows.Count, "E").End(xlUp).Row))
        
        WS.Range("F9:F42").ClearContents
        n = WS.Range("G6").Value
        
        For i = 9 To lr
            If WS.Cells(i, "D").Value > 0 Or WS.Cells(i, "E").Value > 0 Then
                n = n + WS.Cells(i, "D").Value - WS.Cells(i, "E").Value
                WS.Cells(i, "F").Value = n
            End If
        Next i
        
        totalD = Application.WorksheetFunction.Sum(WS.Range("D9:D42"))
        totalE = Application.WorksheetFunction.Sum(WS.Range("E9:E42"))
        
        WS.Range("C44").Value = totalD
        WS.Range("C45").Value = totalE
        WS.Range("C46").Value = WS.Range("G6").Value + (totalD - totalE)
    End If
End Sub

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

Dim totals(1 To 3) As Double
Sh.[A1].Value = "قائمة تعاملات عملاء 6 أكتوبر حتى يوم: " & Format(Date, "dd/mm/yyyy")
For i = 1 To 3
    totals(i) = Application.WorksheetFunction.Sum(Sh.Range(Cells(3, i + 2), Cells(152, i + 2)))
    Sh.Cells(153, i + 2).Value = totals(i)
Next i

 

 

 

Customers-Project-02.xlsb 428.06 kB · 1 download

أنا مبتدئ ... لا أعرف الأكواد ولا فين أضعها.

رابط هذا التعليق
شارك

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

 

ScreenRecorderProject12.gif.8d96042f702dd9d575018fe412fb646c.gif

رابط هذا التعليق
شارك

17 ساعات مضت, محمد هشام. said:

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

 

ScreenRecorderProject12.gif.8d96042f702dd9d575018fe412fb646c.gif

السلام عليكم ورحمة الله وبركاته
ليس هذا ما أردته ؟ أنا بالفعل قمت بعمل لينكات لترحيل الأرصدة لورقة مبيعات الشهر.

ما أردته هو عمل (واجهة إدخال) أو (قناع إدخال) أو (Input Mask) .
فلا أحتاج أن أفتح ورقة كل عميل (لصعوبة البحث عن كل عميل) . لإدخل الحركة.
ففكرت في عمل واجهة إدخال للمبيعات ، و واجهة أخري لمردودات المبيعات و واجهة ثالثة للدفعات النقدية.

أتمنى أكون أوضحت ما أقصده.

وشاكر مجهوداتكم

  • Thanks 1
رابط هذا التعليق
شارك

في 11‏/10‏/2024 at 13:39, رشبد said:

بعد ادن الاساتدة 

هذه محاولة

 

image.png.84a88a15c0fb9b00ef3bc53ce4688f95.png

 

Customers-Project-01.xlsm

 

 

740.38 kB

 

 

 · 

 

 

8 downloads

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

هو دة اللي كنت بأفكر فيه .

ممكن أعرف بقى عملته إزاي ؟ ...

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

وكمان عايز أعدل وأغير عليه شوية ليلائم الشغل أكثر...

شاكر جدا لذوقك وتعبك

رابط هذا التعليق
شارك

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

كما ترى اخي الكريم قمت بتصميم يوزرفورم واضفت له اكواد vba بسيطة جدا

اما بالنسبة لطلبك يمكنك انشاء زر على اي ورقة عمل وربطه بهذا الماكرو 

 Sub show_form()
UserForm1.Show
End Sub

 

  • Thanks 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information