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

مساعدة ادخال في خلية ثم الجمع في خلية اخرى


إذهب إلى أفضل إجابة Solved by سليم حاصبيا,

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

السلام عليكم

 

اولاً تقبل الله منكم صالح العمل والطعات وعيدكم مبارك اعادة الله علينا وعليكم بالخير والامان

 

الموضوع ادخال في خلية ثم الجمع في خلية اخرى

 

اريد كلما اضيفة قيمة في الخلية g14 يتم جمعها مع القيمة الموجودة في الخلية g15 وبعد الجمع تعود الخلية g14 فارغة لاستقبال قيمة اخرى

 

 

ادخال في خلية وتجمع في خلية آخرى.rar

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

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

اخى محمد

ضع هذه الكود فى حدث الورقه

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G14:G14")) Is Nothing Then
Target.Offset(1, 0).Value = Target.Value + Target.Offset(1, 0).Value
End If
End Sub

تقبل تحياتى

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

السلام عليكم شكراً استاذ ابراهيم

 

تبقا شى واحد مسح الخلية g14 بعد عملية الجمع

 

فعلت اضافة ولكن فاشلة فاصبح الكود بطيئ

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("g14:g14")) Is Nothing Then
Target.Offset(1, 0).Value = Target.Value + Target.Offset(1, 0).Value
    Range("G14").Select
    Selection.ClearContents

End If
End Sub

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

اخى محمد

بالفعل

الكود الذى تفضلت به صحيح

ويمكن ايضا مسح الخليه دون التحديد



Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("g14:g14")) Is Nothing Then
Target.Offset(1, 0).Value = Target.Value + Target.Offset(1, 0).Value
    Range("G14").ClearContents

End If
End Sub

او



Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("g14:g14")) Is Nothing Then
Target.Offset(1, 0).Value = Target.Value + Target.Offset(1, 0).Value
    
Target.Value=""
End If
End Sub

تقبل تحياتى

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

  • أفضل إجابة

جرب هذا الكود

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("g14")) Is Nothing Then

    m = Target.Value
    n = Target.Offset(1, 0).Value + m
    Target.Offset(1, 0) = n

Target.Value = ""
Target.Select
Application.EnableEvents = True
End If
   Application.EnableEvents = True
End Sub




			
				


	تم تعديل  بواسطه سليم حاصبيا
	
	

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

أخي وحبيبي أبو سليمان

أنا مصمم إنك متاخدش السمكة .. لازم تتعلم تصطاد ويا أنا يا إنت الليلة في المنتدى

هشرح وإنت طبق .. عرفت يبقا خير وبركة والليلة هتعدي على خير .. معرفتش يبقا ليلتي مش فايتة غير لما تطبقها إن شاء الله

الأول خد الكود مشروح بالتفصيل الممل لكل سطر ... عشان تقدر تتعلم وتنفذ الكود على أي ملف تاني

Private Sub Worksheet_Change(ByVal Target As Range)
'فمع كل إدخال يتم أخذ قيمة الخلية [G14] يقوم الكود بالتعامل مع الخلية
'[G15] وجمعها مع القيمة الموجودة بالفعل في الخلية
'[G14] بها القيمة 100 وتم كتابة القيمة 15 في الخلية [G15] أي أنه إذا كانت الخلية
'فيصبح الناتج 105 [G15] يقوم الكود بجمع قيمة الخلية الهدف إلى الخلية
'ثم يقوم الكود بمسح محتويات الخلية الهدف وتحديدها مرة أخرى استعداداً لإدخال جديد
'--------------------------------------------------------------------------------
'تعريف المتغيرات لخلية الهدف والخلية أسفل منها
    Dim M, N
'[G14] هذا السطر يحجم التعامل مع خلية واحدة وهي الخلية
'أي أن تنفيذ الكود مرتبط بالتغير في هذه الخلية
    If Not Intersect(Target, Range("G14")) Is Nothing Then
'إلغاء خاصية تمكين الحدث لتنفيذ الكود بشكل أسرع
        Application.EnableEvents = False
'إذا حدث تغير في الخلية الهدف يتم تنفيذ الأسطر التالية
        With Target
'شرط للتحقق من أن البيان المدخل عبارة عن رقم وليس نص
            If IsNumeric(Target) Then
'المتغير يساوي قيمة الخلية الهدف
                M = .Value
'المتغير يساوي قيمة الخلية أسفل الخلية الهدف زائد قيمة الخلية الهدف
                N = .Offset(1, 0).Value + M
'[N] الخلية أسفل الخلية الهدف تساوي المتغير المسمى
                .Offset(1, 0) = N
            End If
'مسح محتويات الخلية الهدف وتحديدها
            .Value = "": .Select
        End With
'إعادة خاصية تمكين الحدث
        Application.EnableEvents = True
    End If
End Sub

دا الكود ..حلو الكلام ؟؟؟ قووووول حلو

 

طيب فين نضع الكود .. سؤال بسيط وإجابتة أبسط

كليك يمين على اسم ورقة العمل المسماة "ورقة 1"كما في المرفق في المشاركة الأولى

نقول تاني كليك يمين على ورقة العمل ورقة 1 وبعدين هيطلع قايمة (نتفرج عليها شوية ونركز فيها ) وندور على الأمر View Code  ولو الأوفيس عربي مفيش مشكلة هتلاقي اسمه "عرض أو إظهار الكود"

هيفتح معاك محرر الأكواد في المكان المناسب تماماً .. اللي هو حدث ورقة العمل أو الموديول الخاص بالورقة وليس مثل بقية الأكواد التي توضع في موديول منفصل ...

المهم تلصق الكود اللي وضعته في المكان المناسب وروح للورقة وضع أرقام في الخلية G14  لتجربة الكود .. وعينك طبعاً على الخلية G15 عشان تشوف التغيرات

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

السلام عليكم

شكراً جزيلاً استاذ سليم علي الكود الجميل الخفيف

 

 

 

.........................  (( استاذي العزيز ياسر شرح مفصل وجميل جداَ ومبسط بارك الله فيك  ))

 

 

 

 

أخي وحبيبي أبو سليمان

أنا مصمم إنك متاخدش السمكة .. لازم تتعلم تصطاد ويا أنا يا إنت الليلة في المنتدى

هشرح وإنت طبق .. عرفت يبقا خير وبركة والليلة هتعدي على خير .. معرفتش يبقا ليلتي مش فايتة غير لما تطبقها إن شاء الله

الأول خد الكود مشروح بالتفصيل الممل لكل سطر ... عشان تقدر تتعلم وتنفذ الكود على أي ملف تاني

Private Sub Worksheet_Change(ByVal Target As Range)
'فمع كل إدخال يتم أخذ قيمة الخلية [G14] يقوم الكود بالتعامل مع الخلية
'[G15] وجمعها مع القيمة الموجودة بالفعل في الخلية
'[G14] بها القيمة 100 وتم كتابة القيمة 15 في الخلية [G15] أي أنه إذا كانت الخلية
'فيصبح الناتج 105 [G15] يقوم الكود بجمع قيمة الخلية الهدف إلى الخلية
'ثم يقوم الكود بمسح محتويات الخلية الهدف وتحديدها مرة أخرى استعداداً لإدخال جديد
'--------------------------------------------------------------------------------
'تعريف المتغيرات لخلية الهدف والخلية أسفل منها
    Dim M, N
'[G14] هذا السطر يحجم التعامل مع خلية واحدة وهي الخلية
'أي أن تنفيذ الكود مرتبط بالتغير في هذه الخلية
    If Not Intersect(Target, Range("G14")) Is Nothing Then
'إلغاء خاصية تمكين الحدث لتنفيذ الكود بشكل أسرع
        Application.EnableEvents = False
'إذا حدث تغير في الخلية الهدف يتم تنفيذ الأسطر التالية
        With Target
'شرط للتحقق من أن البيان المدخل عبارة عن رقم وليس نص
            If IsNumeric(Target) Then
'المتغير يساوي قيمة الخلية الهدف
                M = .Value
'المتغير يساوي قيمة الخلية أسفل الخلية الهدف زائد قيمة الخلية الهدف
                N = .Offset(1, 0).Value + M
'[N] الخلية أسفل الخلية الهدف تساوي المتغير المسمى
                .Offset(1, 0) = N
            End If
'مسح محتويات الخلية الهدف وتحديدها
            .Value = "": .Select
        End With
'إعادة خاصية تمكين الحدث
        Application.EnableEvents = True
    End If
End Sub

دا الكود ..حلو الكلام ؟؟؟ قووووول حلو

 

طيب فين نضع الكود .. سؤال بسيط وإجابتة أبسط

كليك يمين على اسم ورقة العمل المسماة "ورقة 1"كما في المرفق في المشاركة الأولى

نقول تاني كليك يمين على ورقة العمل ورقة 1 وبعدين هيطلع قايمة (نتفرج عليها شوية ونركز فيها ) وندور على الأمر View Code  ولو الأوفيس عربي مفيش مشكلة هتلاقي اسمه "عرض أو إظهار الكود"

هيفتح معاك محرر الأكواد في المكان المناسب تماماً .. اللي هو حدث ورقة العمل أو الموديول الخاص بالورقة وليس مثل بقية الأكواد التي توضع في موديول منفصل ...

المهم تلصق الكود اللي وضعته في المكان المناسب وروح للورقة وضع أرقام في الخلية G14  لتجربة الكود .. وعينك طبعاً على الخلية G15 عشان تشوف التغيرات

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

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

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



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

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

Important Information