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

الصـقر

الخبراء
  • Posts

    1,836
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    21

كل منشورات العضو الصـقر

  1. اخى الكريم ضع هذا الكود فى الفورم Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True Application.Quit ThisWorkbook.Close Not CBool(ThisWorkbook.Saved) End Sub تقبل تحياتى
  2. اخى الحبيب خد كوبى من الكود اللى بحدث الورقه وانسخه فى الكود اللى بالمودويل هيكون بالشكل ده Sub Macro1() Dim lr As Long Application.ScreenUpdating = False lr = Range("b" & Rows.Count).End(xlUp).Row Range("G18").FormulaR1C1 = "=MAX(R[1]C[-4]:R65536C3)" Range("H18").FormulaR1C1 = "=IF(RC[-4]>RC[-1],""تنفيذ"",)" Range("G18:H18").AutoFill Destination:=Range("G18:H" & lr), Type:=xlFillDefault Range("G18:H" & lr) = Range("G18:H" & lr).Value Dim Cl As Range If [H17] = "" Then Exit Sub For Each Cl In Range("H18:H" & [H5000].End(xlUp).Row) If Cl.Value = [H17] Then Cl.Offset(0, -6).Resize(1, 3).Copy Range("N" & [N5000].End(xlUp).Row + 1).PasteSpecial xlPasteValues Application.CutCopyMode = False End If Next MsgBox "تم الترحيل بنجاح", vbOKOnly, "تنبية" Application.ScreenUpdating = True End Sub وبعد كدا احذف الكود اللى بحدث الورقه ملوش لازمه جرب وعلمنى بالنتيجة ملحوظه تم اضافه هذه الجزئية بالكود Application.CutCopyMode = False وهى لايقاف عملية النسخ تقبل تحياتى
  3. تفضل استاذى الحبيب المرفق ان شاء الله به طلبك فى حال اختيار فترة يتم جلب البيانات طبقا للفترة وفى حال عدم اختيار فترة محدده يتم جلب جميع البيانات تقبل تحياتى TAS.zip
  4. اخى واستاذى الحبيب محمد الريفى يسعدنى ان اكون اول المهنئين على هذا العمل الرائع جزاكم الله خيرا على الاعمال الرائعه اتمنى لك مزيد من التقدم ومن ابداع الى ابداع وجعله الله فى ميزان حسناتكم جارى التجربه والاستفاده من هذا العمل الرائع تقب تحياتى
  5. استاذى الحبيب تفضل المرفق تم اضافه زر جديد يقوم باحضار كل العملاء طبقا لتاريخ استحقاق من فترة الى فترة لاحظ حضرتك انى ظللت خلايا باللون الاحمر ارى لا فائده منها فبأمكانك اختيار الفترة من الخلايا G4/G5 اذن فى زرين مع حضرتك زر يقوم بجلب حركات على عميل معين طبقا لفترة محدده وزر اخر يقوم بجلب حركات جميع العملاء طبقا لتاريخ الاستحقاق حسب فترة معينه ارجوا ان يكون المطلوب تقبل تحياتى TAS.zip
  6. تفضل استاذى الحبيب المرفق تم عمل كشف حساب بناء على اختيرا العميل بالخليه C5 و اختيار الفترة المطلوبه بالخلية g4/g5 ان شاء الله يكون طلبك بخصوص معيار برقم الفاتورة انا ارى لا جدوى منه دا ممكن يكون فى زر للبحث بشيت main ويكتب بالخلية G5 رقم الفاتورة ويتم استدعاء بيانات الفاتورة /// اما كشف حساب اللى هو تقرير يكون بناء على العميل والفترة المطلوبه تقبل تحياتى TAS.zip
  7. استاذى الحبيب جزاكم الله خيرا ومن ابداع الى ابداع ومن رقى الى رقى جعله الله فى ميزان حسناتك تقبل تحياتى
  8. اخى احبيب الاستاذ صلاح الموضوع مش معقد يمكنك ذالك بكل سهوله ضع هذا الكود فى اى مودويل والموضوع يخص الاستاذ ياسر خليل حاولت البحث عن الموضوع الاصلى وللاسف لم اصل الي الرابط الخاص بالموضوع ولكن هذا هو الكود Public RunWhen As Double Public Const cRunIntervalSeconds = 10 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 2, 0) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _ schedule:=True End Sub Sub The_Sub() ActiveWorkbook.Save StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, _ procedure:=cRunWhat, schedule:=False End Sub ثم ضع فى حدث فتح الملف هذا الكود Private Sub Workbook_Open() StartTimer End Sub ثم ضع هذا بحدث قبل اغلاق الملف Private Sub Workbook_BeforeClose(Cancel As Boolean) StopTimer End Sub يمكن من هذا السطر بالكود -- تحديد الوقت بين كل عمليه حفظ واخرى ( هو حاليا كل دقيقتين يقوم الجهاز بالحفظ التلقائى ) RunWhen = Now + TimeSerial(0, 2, 0) تقبل تحياتى
  9. تفضل اخى الحبيب المرفق يعطى اشارة الليبل مثل اشارات المرور تقبل تحياتى المحاولات.zip
  10. اخى الكريم اولا قم بعمل تكست بوكس جديد وبالتالى سوف يكون رقمه 3 ثم قم باستبدال هذا السطر بالكود ( هتلاقية بزر التاكيد) If TextBox1 = "12345" Then Unload Me: Exit Sub بهذا السطر If TextBox1 = "12345" And TextBox3 = "عبدالعزيز" Then Unload Me: Exit Sub جرب وعلمنى بالنتيجة انا محبتش ارفق الملف بالحل انا عايزك انت تجرب بنفسك تقبل تحياتى
  11. اخى الحبيب يوضع هذا الجزء فى بداية اكواد الفورم Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = -16 Const WS_SYSMENU = &H80000 ثم يوضع هذا الجزء مستقل Private Sub UserForm_Initialize() Dim hWnd As Long, lStyle As Long If Val(Application.Version) >= 9 Then hWnd = FindWindow("ThunderDFrame", Me.Caption) Else hWnd = FindWindow("ThunderXFrame", Me.Caption) End If lStyle = GetWindowLong(hWnd, GWL_STYLE) SetWindowLong hWnd, GWL_STYLE, (lStyle And Not WS_SYSMENU) End Sub اخفاء زر الخروج.zip
  12. تفضل اخى الحبيب ضع هذا الكود فى الفورم Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = -16 Const WS_SYSMENU = &H80000 Private Sub UserForm_Initialize() Dim hWnd As Long, lStyle As Long If Val(Application.Version) >= 9 Then hWnd = FindWindow("ThunderDFrame", Me.Caption) Else hWnd = FindWindow("ThunderXFrame", Me.Caption) End If lStyle = GetWindowLong(hWnd, GWL_STYLE) SetWindowLong hWnd, GWL_STYLE, (lStyle And Not WS_SYSMENU) End Sub تقبل تحياتى
  13. استاذى الحبيب ياسر خليل بصراحه ماشيه معاك مره عزومه بط ووز ومره رسالة شكر معطره ايه يا عم هو مفيش غيرك كدا انا وابوسليمان لى العتب على الاستاذ رجب جاويش تقبل تحياتى ومفيش ورد كفايه عليك كدا
  14. استاذى الحبيب هانى دا على السريع فيما يثبت ان المبيعات ليس لها تاثير على حساب المتوسط المتحرك للمخزون راجع الرابط ده http://uqu.edu.sa/files2/tiny_mce/plugins/filemanager/files/4350233/____/4.pdf وتحديدا الصفحه 8 و 9 وهناك العديد من المراجع سوف ارفعها لك لاحقا تقبل تحياتى
  15. استاذى الحبيب استاذ هانى والله كم يسعدنى بتلقيبكم لى المشاغب على فكره مش انت اول واحد تقولها هههههههههههههههههههههههه اشكرك من اعماق قلبى وخد راحتك بس مش قوى يعنى فى اللى انت عايزه سمينى زى ما تسمينى بس مش لدرجة انى ادبح على العيد الاضحى تقبل تحياتى كفايه عليك كدا لان الاستاذ ياسر خليل هيزعل على الورد اللى بناخده من المنتدى بيعدهم عليا ايوة زى ما بقولك كدا دا عايز يحاسبنى عليهم
  16. ارجوا من حضرتك ومن الاستاذ هانى مراجعه المشاركه رقم 13 مره اخرى لان بصراحه عايز افهم ازاى عمليات البيع او مردوات البيع تؤثر على تكلفه الوحده المباعه الاستاذ محمد الريفى فتكلفة الوحدات المباعه تختلف فى كل حركة جديده من المشتريات او مردودات المشتريات فقط وليس للمبيعات او مردودات المبيعات اى تاثير الاستاذ هانى انا الصراحه مش قادر افهم قصدك من يعني لو ممكن تقول لنا ازاى هتحسب متوسط تكلفة الصنف ( المصنع ) المباع في اليوم الواحد او في الشهر الواحد ماذا تعنى حتى اقدر ارد على حضرتك ما هى العلاقة بين عمليات البييع وحساب تكلفه الصنف المصنع على فكره انا بشتغل فى مصنع يعنى بنقوم بعمليات تصنيع مواد خام وتحويله الى منتج نهائى تقبلوا تحياتى
  17. اخى واستاذى الحبيب محمد الريفى كم يشرفنى ويسعدنى مشاركتكم ولكن اسمح لى بالتعليق على مشاركتكم الكريمه حضرتك بتقول للاستاذ هانى ان فكرته صحيحه 100% ما هى الفكرة التى تقصدها ؟ هل المقصود ان عمليات البيع تؤثر على تقيم المخزون ؟ أم ماذا ثانيا لو حبينا نطبق مثال الاستاذ هانى السابق بطريقه الجرد الدورى سيكون كالتالى تكلفة البضاعه المباعه = ( (مخزون اول المده +المشتريات )- مردودات المشتريات ) -مخزون اخر المده مخزون اخر المدة يمكن تقيمه بالقيمة الدفترية من خلال احدى الطرق ( FIFO .LIFO .WA) او القيمة السوقيه او ايهما اقل بافتراض انه بالمثال السابق يتم تقييم المخزون بالقيمة الدفترية طبقا للمتوسط المرجح مخزون اخر المده = متبقى 15 كيلو * 5 = 75 مخزون اول المدة = 0 المشتريات = 100 مردود المشتريات = 0 اذن تكلفه البضاعه المباعه هى ((0+100)-0)-75) = 25 ارجوا من حضرتك لو كنت مخطأ لا تبخل على بتصحيح خطاى فأنا مازلت تلميذكم واريد ان ارتوى من بحر علمكم تقبلوا تحياتى
  18. استاذى الحبيب هانى بدر انا سعيد جدا بدخول حضرتك على خط النقاش الساخن حول هذا الموضوع اسمح لى وبكل تواضع منى لشخصكم الكربم حركات فواتير المبيعات ومردودات المبيعات لا تؤثر على متوسط تكلفه المخزون بأى طريقه نهائيا طبعا علشان اوصل لحضرتك على اى اساس كتبت الكلام ده لازم لى ساعات علشان اكتب ووضح لحضرتك بالامثله المثال اللى حضرتك بتستشهد بيه اليك المثالين يوضحون الفرق مثال 1 تاريخ الحركه نوع الحركة الكمية السعر القيمة 2015-4-1 مشتريات 10 4 40 2015-4-4 مبيعات 5 5 25 ( ملحوظه هنا سعر البيع طبقا لسياسة الشركه وادارة المبيعات هى من تقرر السعر وبافتراض هنا انها 5 جنية) 2015-4-4 اذن صرف من المخازن 5 4 20 ( هنا تم عمل سعر التكلفه بناء على المتوسط المرجح قيمة المشتريات 40/ كمية المشتريات 10= 4** يعنى تم تقييم المخزون صرفه من المخزن وبسعر المتوسط عند الخروج وليس البيع) 2015-4-15 مشتريات 10 6 60 ----------------------------------------------------------------------------------------------------------------------------------------------------------- المثال 2 تاريخ الحركه نوع الحركة الكمية السعر القيمة 2015-4-1 مشتريات 10 4 40 2015-4-4 مبيعات 5 5 25 ( ملحوظه هنا سعر البيع طبقا لسياسة الشركه وادارة المبيعات هى من تقرر السعر وبافتراض هنا انها 5 جنية) 2015-4-15 مشتريات 10 6 60 2015-4-16 اذن صرف من المخازن 5 5 25 ( هنا تم عمل سعر التكلفه بناء على المتوسط المرجح قيمة المشتريات 100/ كمية المشتريات 20 = 5 ** يعنى تم تقييم المخزون عند صرفه من المخزن وبسعر المتوسط عند الخروج وليس البيع) هنا اصبح قيمة المخزون 5 بدلا من 4 والسبب فى ذالك هى حركة المشتريات بتاريخ 15-4-2015م التى أثرت على التكلفه ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- من المثالين السابقين يتضح لنا ان عملية تقيم تكلفه المخزون مختلفه والسبب هنا هو حركة المشتريات وليس المبيعات علشان كدا انا بقول لحضرتك ان عملية البيع ليس لها اى علاقه بتقييم المخزون لا بطريقه الجرد الدورى ولا طريقه الجرد المستمر طبعا الكلام فى هذا الموضوع كتير جدا وانا سعيد جدا بالنقاش حول هذه النقطه ودار بينى وبين الاستاذ احمد عبدالناصر والاستاذ الحبيب محمد الريفى نقاش طويل حول هذا الموضوع واتمنى مشاركتهم لنا بالنقاش
  19. تفضل اخى الحبيب الملف المرفق بعد تظبيط متوسط التكلفه بناء على مجموع قيم المشتريات/الكميات المشتراه تقبل تحياتى Book2.zip
  20. على فكرة طلب حضرتك كان انك عايز تحسب صافى الكمية وبالفعل المعادله موجوده بالعمود E لكن انا قمت باضافه معادله بالعمود G ومعملتش اى شئ بالعمود F وهو الخاص بمتوسط التكلفه
  21. اخى الحبيب حضرتك عامل فى الملف المرفق بتاعك ان قيمة التكلفه تساوى اخر قيمة تم شراء بضاعه بها وهذا غير صحيح علشان تحسب متوسط تكلفه الصنف مجموع قيم الكميات اول المده+مجموع قيم الكميات من المشتريات - مجموع قيم مردودات المشتريات متوسط تكلفه الصنف = ------------------------------------------------------------------------------------------------------------ مجموع الكميات اول المده+مجموع الكميات من المشتريات - مجموع مردودات المشتريات مثال الصنف أ الكمية سعر الحبه القيمة اول المده 5 10 50 مشتريات 6 11 66 مردود مشتريات 2 10 20 --------------------------------------------------- المجموع 9 96 50 + 66 - 20 96 متوسط التكلفه فى هذه الحاله هى = --------------------- = ------ = 10.66 5 + 6 -2 9 طبعا حضرتك مش عندك اول المدة ولا عندك مردود مشتريات كله بس شراء وبيع حركة الشراء تؤثر على تقيم المحزون أما حركة البيع لا تؤثر على تقيم المخزون اتمنى ان اكونا وضحت الفكرة تقبل تحياتى
  22. اخى الكريم جرب المرفق تم تعديل عملية الترتيب تقبل تحياتى Customers_Form.zip
  23. استاذى الفاضل انا شايف ان الملف المصدر مفتوح vba يعنى غير مغلق وايضا الشيتات غير مغلقه يعنى عمليه النقل سهله ! ولا حضرتك مش عايز تتعب تقبل تحياتى
×
×
  • اضف...

Important Information