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

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

قام بنشر

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

حياكم الله إخواني

:dance1:

 

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

مع العلم أنا استعمل إكسل 2010

Sub Ajouter_journal()

    Range(Range("$H$4"), Range("$A$4:$A$10").End(xlDown)).Select
    Range(Range("$H$4"), Range("$A$4:$A$10").End(xlDown)).Copy
    
        If Cells(22, 1) = "" Then
        
        Range("$A$22").Select
        Range("$A$22").PasteSpecial (xlPasteValues)
    Range("$A$4:$C$10").ClearContents
    Range("$E$4:$E$10").ClearContents
    Range("$G$4:$H$10").ClearContents
    Range("$A$4").Select
    
        Else
        
        Range("$A$22:$A$65000").End(xlDown).Offset(1, 0).Select
        Range("$A$22:$A$65000").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)
    Range("$A$4:$C$10").ClearContents
    Range("$E$4:$E$10").ClearContents
    Range("$G$4:$H$10").ClearContents
    Range("$A$4").Select
        
        End If
    
End Sub

neR46502.jpg

قام بنشر

الأخ الكريم /

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

نعم السطر بالأصفر به خطأ :

 Range("$A$22:$A$65000").End(xlDown).Offset(1, 0).Select

حيث جزئية 

 .End(xlDown)

تعني آخر سطر في الورقة

بينما الجزئية

.Offset(1, 0) 

تشير إلي الخلية بالسطر أسفل الحالي - وحيث الحالي هو آخر سطر بالورقة لذا ظهرت رسالة الخطأ

 

إقترح التالي وعدل ما تريد حسب ما تري :

1- إن اردت النسخ حتي مدي (Range) محدد - إستخدم

Range("$A$22").Copy
Range(Range("$A$22").Offset(1, 0), "$A$65000").PasteSpecial (xlPasteValues)

2- إن أردت النسخ حتي نهاية الورقة - إستخدم

Range("$A$22").Copy
Range(Range("$A$22").Offset(1, 0), Range("$A$22").End(xlDown)).PasteSpecial (xlPasteValues)

أرجو أن أكون قد أفدتك

تقبل تحياتي

 

 

قام بنشر

جزاك الله أخي خيرا على الرد الجميل 

أجريت تعديل ونجح الامر 

Sub Ajouter_journal()

    Range(Range("$H$4"), Range("$A$4:$A$10").End(xlDown)).Select
    Range(Range("$H$4"), Range("$A$4:$A$10").End(xlDown)).Copy
    
        If Cells(22, 1) = "" Then
        
        Range("$A$22").Select
        Range("$A$22").PasteSpecial (xlPasteValues)
    Range("$A$4:$C$10").ClearContents
    Range("$E$4:$E$10").ClearContents
    Range("$G$4:$H$10").ClearContents
    Range("$A$4").Select
    
        Else
        
        Range("$A$22:$A$65000").End(xlDown).Select
        Selection.Offset(1, 0).PasteSpecial (xlPasteValues)
    Range("$A$4:$C$10").ClearContents
    Range("$E$4:$E$10").ClearContents
    Range("$G$4:$H$10").ClearContents
    Range("$A$4").Select
        
        End If
    
End Sub
قام بنشر

الأستاذ/ tchankich

 

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

طبعا أنا سعيد لأن الكود يعمل معك ولكني أري أن خطأ الكود مازال قائما

وبمجرد تحقق شرط الشطر الثاني من جملة IF ستظهر لك نفس رسالة الخطأ مجددا

Run-time error 1004

Application-defined or object-defined error

 

وأقصد الكود التالي :

Else

Range("$A$22:$A$65000").End(xlDown).Select
Selection.Offset(1, 0).PasteSpecial (xlPasteValues)

لذا جرب الإحتمال الثاني وأخبرني بالنتيجة

تقبل تحياتي

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

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information