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

هل من خطأ في هذه الكود ارجو التصحيح


tchankich

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

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

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

: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