اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم ورحمة الله وبركاته
أحاول عمل ملف إكسيل لمتابعة حساب العملاء . لاكنى أجاهد للبحث عن (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

  • Like 1
قام بنشر
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

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