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

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

قام بنشر

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

 

كود نسخة ولصق من خلية الي خلية الي بعدة كلما تغيرت الخلية A اكبر من  1000 

 

هذا الكود ويعمل بشكل سليم لكن مشكلتة يعمل فقط عندما اكتب في الخلية يدوي و انقر علي زر الانتر في لوحة المفاتيح و انا احتاج يعمل تلقائي او بمجرد ما افتح الاكسل

Private Sub Worksheet_Change(ByVal Target As Range)
     
    On Error GoTo ws_exit
     
    Application.EnableEvents = False
     
    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then
         
        If Target.Value > 1000 Then
             
            Me.Cells(Target.Row, Me.Columns.Count).End(xlToLeft).Offset(0, 1).Value = Target.Value
        End If
    End If
     
ws_exit:
    Application.EnableEvents = True
End Sub
حاولت اعدل حتي يعمل تلقائي بكتابة هذا الكود
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False

If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

If Target.Value > 1000 Then

Me.Cells(Target.Row, Me.Columns.Count).End(xlToLeft).Offset(0, 1).Value = Target.Value
End If
End If

ws_exit:
Application.EnableEvents = True
End Sub

لكن تظهر لي رسالة خطاء
 
اتمنا مساعدتي 
قام بنشر

الكود الاول يعمل عند تغيير الخلية النشطة من العمود الاول

If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

اما الكود الثاني

يعمل عند اعادة حساب الورقة

والمتغير Target

مش موجود في هذا الحدث

 

اكيد حيظهر خطأ

 

غير

 

Target

 

الى

 

ActiveCell

 

او استخدم هذا الحدث قد يناسبك

Private Sub Worksheet_SelectionChange(ByVal Target As Range

رغم اني  افضل في مثل حالتك الكود الاول في مشاركتك

 

في امان الله

قام بنشر

الكود الاول يعمل عند تغيير الخلية النشطة من العمود الاول

If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

اما الكود الثاني

يعمل عند اعادة حساب الورقة

والمتغير Target

مش موجود في هذا الحدث

 

اكيد حيظهر خطأ

 

غير

 

Target

 

الى

 

ActiveCell

 

او استخدم هذا الحدث قد يناسبك

Private Sub Worksheet_SelectionChange(ByVal Target As Range

رغم اني  افضل في مثل حالتك الكود الاول في مشاركتك

 

في امان الله

 

 

هل من الممكن مساعدتي في هذا الملف

عندما اغير  في Sheet 2  اكبر من 1000 في العمود A

 

يعمل الكود في Sheet1

 

مشكلة الكود انة عندما اغير الخلية في الورقة رقم 2 لا يعمل في الورقة رقم 1 ويقوم بالنسخ و الصق في العمود الي بجانبة

فقط يعمل عندما اكتب يدوي و انقر علي انتر في لوحة المفاتيح في نفس الورقة 1

copy and paste2.rar

قام بنشر

السلام عليكم

 

حسب ما فهمت من طلبك

استبدل هذا الكود بالكود الموجود في Sheet1

Private Sub Worksheet_Calculate()
Dim Lr As Long, r As Long
Dim v As Double

On Error GoTo ws_exit

Lr = Cells(Rows.Count, "a").End(xlUp).Row
For r = 1 To Lr
    v = Val(Cells(r, "A"))
    If v > 1000 Then
        Me.Cells(r, Me.Columns.Count).End(xlToLeft).Offset(0, 1).Value = v
    End If
Next
ws_exit:
End Sub

تحياتي

قام بنشر

الف شكر اخي العزيز علي مساعدتك  اشتغل المرفق لكن فية مشكلة وهي

 

لو تغيرة اكبر من 1000 مثلا رقم 1 راح ينسخ ويلصق في الخلية المجاورة كذا تمام لكن لو مثلا غيرت الخلية رقم 2 اكبر من 1000 راح ينسخ ويلصق الخلية المجاورة و ايضاء يكرر مرة اخري النسخ و الصق في الخلية 1

 

مشكلتة الان التكرر في الخلية السابقة  عند تغير خلية اخري اكبر من 1000

 

اتمنا تساعدني وتحل المشكلة

قام بنشر

الف شكر اخي العزيز علي مساعدتك  اشتغل المرفق لكن فية مشكلة وهي

 

لو تغيرة اكبر من 1000 مثلا رقم 1 راح ينسخ ويلصق في الخلية المجاورة كذا تمام لكن لو مثلا غيرت الخلية رقم 2 اكبر من 1000 راح ينسخ ويلصق الخلية المجاورة و ايضاء يكرر مرة اخري النسخ و الصق في الخلية 1

 

مشكلتة الان التكرر في الخلية السابقة  عند تغير خلية اخري اكبر من 1000

 

اتمنا تساعدني وتحل المشكلة

 

استبدل هذا الكود

Private Sub Worksheet_Calculate()
Dim Lr As Long, r As Long
Dim v As Double

On Error GoTo ws_exit

Lr = Cells(Rows.Count, "a").End(xlUp).Row
For r = 1 To Lr
    v = Val(Cells(r, "A"))
    If v > 1000 Then
        With Me.Cells(r, Me.Columns.Count).End(xlToLeft)
            If .Column = 1 Then
                .Offset(0, 1).Value = v
            Else
                If v <> Val(.Value) Then .Offset(0, 1).Value = v
            End If
        End With
    End If
Next
ws_exit:
End Sub

مع العلم ان التكرار سيحدث فقط في العمود B

 

تحياتي

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