الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

replace cell value in excel

مغلق
بدأه shayma'a في 1 أبريل 2003 · 3 رد · 854 مشاهدة · في طلب و دراسة وشرح البرامج
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن عمل replace لقيمة خلية محددة

لدي المثال التالي :

القيمة المخمنة.. القيمة الحقيقية .. فرق القيمة .. الرسوم الموحدة .. ضريبة المبيعات

فرق القيمة = القيمة الحقيقية - القيمة المخمنة

الرسوم الموحدة = فرق القيمة * 30%

ضريبة المبيعات = (فرق القيمة+الرسوم الموحدة)*13%

أريد عمل الشرط التالي حسب المثال المرفق

إذا كان حاصل ضرب فرق القيمة في 25% < من مجموع الرسوم والضريبة

نضع قيمة حاصل الضرب مكان الرسوم ونصفر قيمة الضريبة

أما إذا كان حاصل الضرب أكبر تبقى قيمة الرسوم والضريبة كما هي

ملاحظة ..

حاولت إضافة macro للقيام بالمطلوب ولكن يتم ذلك على مستوى الform

كاملاً .. وهو ليس المطلوب

Private Sub Worksheet_Change(ByVal Target As Range)

Dim I As Integer
For I = 12 To 24
Worksheets("Sheet1").Cells(I, 16).Value = Worksheets("Sheet1").Cells(I, 12).Value * 0.3
Worksheets("Sheet1").Cells(I, 17).Value = (Worksheets("Sheet1").Cells(I, 16).Value + Worksheets("Sheet1").Cells(I, 12).Value) * 0.13
If Worksheets("Sheet1").Cells(I, 20).Value < Worksheets("Sheet1").Cells(I, 19).Value Then
      Worksheets("Sheet1").Cells(I, 16).Value = Worksheets("Sheet1").Cells(I, 20).Value
      Worksheets("Sheet1").Cells(I, 17).Value = 0

End If
Next I



End Sub

أرجو أن يكون المثال واضحاً .. وأتمنى الحصول على الحل سريعاً

مع جزيل الشكر على تعاونكم

#2

أولا : لم ترفق المثال مما صعب الموضوع قليلا

ثانيا : يلاحظ أن الحالة الثانية لن تتحقق الا اذا كان فرق القيمة سالب ، فهل هذا سليم ؟؟ أم لم أفهم السؤال جيدا ، ف 25% لن تكون أكبر من 49% بأي حال . اذا كان هناك خطأ فبرجاء التوضيح

بالنسبة للمسألة نفسها ، فيمكن التعامل معها علي مراحل علي عدة خلايا

او عمل دالة بالكود تبين فى أي حالة من الاثنين تقع المسألة و من ثم نضع الكود عن طريق دالة if

Function shamia(mycell) As Boolean

 Dim m As Double

 m = mycell.Value

 Rossom = m * 0.3

 Dariba = (m + Rossom) * 0.13



 If 0.25 * m < (Dariba + Rossom) Then

  shamia = True

 Else

  shamia = False

 End If



End Function

و استخدامها كما فى المثال المرفق

functiondariba.zip

#3

المثال في الملف المرفق التالي

والمطلوب هو عمل replace مكان قيم الرسوم ( p12 ) وضريبة المبيعات( Q12 )

وليس وضع القيم في خلايا جديدة

çلمîçٌّ.zip

#4

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

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

( القيم فى الاعمدة المذكورة فقط ) q & p

Sub shamia2()

 With Selection

   Dim myrow As Integer

   myrow = .Rows.Count

   'MsgBox myrow

   For i = 1 To myrow

      Dim Dariba As Double, Rossom As Double, Farq As Double

      Rossom = ActiveCell.Value

      Dariba = ActiveCell.Offset(0, 1).Value

      Farq = ActiveCell.Offset(0, -4).Value

      'MsgBox Rossom

      'MsgBox Dariba

      'MsgBox Farq

      If Farq * 0.25 > Rossom + Dariba Then

       'nothing

      Else

      Dariba = Farq * 0.25

      Rossom = 0

      End If

           

      ActiveCell.Value = Rossom

      ActiveCell.Offset(0, 1).Value = Dariba

           

   ActiveCell.Offset(1, 0).Activate

   Next

 End With

End Sub

مع العلم باني أري أن استخدام أي من الطريقتين السابقتين ن أفضل من استبدال القيم

هذا الموضوع مغلق.

مواضيع مشابهة