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

اريد عمل اكواد معينة بالفيجوال على عدة اعمدة في صفحات مختلفة


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

اريد كود وليس معادلة تفرض في اي عمود اريده في الملف وفي اي ورقة الأتي :

فرض العلامة العشرية ان تكون 2 مهما تم التعديل في تنسيق الخلايا اي انه لابد ان يظهر الرقم 15.00 مثلا مهما تم التعديل في تنسيق الخلايا

والطلب الأخر كذلك بالأكواد وهو التقريب في نفس العمود هذا لأقرب 0.05 ، بمعنى عندما اكتب ولو بالغلط 15.42 تتحول لأقرب 0.05 بأن تكون مباشرة 15.45 ،،مثال اخر 15.28 تتحول مباشرة 15.30 وهكذا

اريد ماسبق بالأكواد المحفوظة على عدة اعمدة في ملف ما

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

بارك الله فيك استاذنا هذا المطلوب

 

عند تطبيق الكود على الملف الموجود لدي رفض تطبيق المعادلة واعطاني هذه الأخطاء  ، حيث لدي كود اخر للروزنامة
 

 

 

2016-12-28_221136.jpg

2016-12-28_221211.jpg

2016-12-28_222311.jpg

2016-12-28_222612.jpg

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

السلام عليكم،

جرب هذا الكود.

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub
    Target.NumberFormat = "0.00"
    x = Target.Value
    y = Application.WorksheetFunction.Ceiling(x, 0.05)
    Target = y
End Sub

 

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

السلام عليكم،

هناك سطر اضافي في الكود.

On Error Resume Next

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub
    Target.NumberFormat = "0.00"
    x = Target.Value
    y = Application.WorksheetFunction.Ceiling(x, 0.05)
    Target = y
End Sub

 

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

جزاك الله خيرا  ، ولكن لدي مشكلة برجاء الحل

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

بل لاحظت ايضا عن الوقوف على اي خلية في العمود ولو فارغة والضغط على delete من لوحة المفاتيح تتحول الى  0.00

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

جرب الكود التالي :

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub
    If Target.Value <> "" Then
        Target.NumberFormat = "0.00"
        x = Target.Value
        y = Application.WorksheetFunction.Ceiling(x, 0.05)
        Target = y
    Else
        Target.NumberFormat = "@"
    End If
End Sub


 

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

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

ولكن عند تطبيقه على ملف لدي عليه اكواد اخرى يعمل ريستارت للإكسل كلما ادخلت اي رقم في العمود 3  ولا اعرف السبب ماذا  ، وجربت الكودين  علما إني لا اضع اي اكواد الا المرفوعه صورها اعلاه  ، مثل التاريخ

 

 

2017-01-06_230827.jpg

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

لا ادري ما اصل المشكلة.

حاول تجريب هذا الكود المعدل :

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Target.Value <> "" Then
        Target.NumberFormat = "0.00"
        x = Target.Value
        y = Application.WorksheetFunction.Ceiling(x, 0.05)
        Target = y
    Else
        Target.NumberFormat = "General"
    End If
    Application.EnableEvents = True
End Sub

 

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

  • 3 weeks later...

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

 

 

 

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

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

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



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

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

Important Information