السلام عليكم ورحمة الله
أخي الكريم، إن خطأ الكود في عدم إيجاد الصورة وارد جدا لأن عند كل إدراج لصورة في ملف يتغير اسم الصورة وفي الكود اسم الصورة ثابت "Picture 23" وهذا سبب الخطأ... وأقترح تغيير السطر التالي في الكود:
ActiveSheet.Shapes.Range(Array("Picture 23")).Select
بالسطر (مع الحذر أنه يقوم بتحديد كل الصور والمربعات)
ActiveSheet.DrawingObjects.Select
والخلل في بطء تنفيذ الكود راجع (حسب رأيي) إلى أمر الطباعة ذاته المتمثل في السطر :
Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
ولما استبدل بالأمر :
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
كان تنفيذ الكود أسرع...
والله أعلى وأعلم