اذهب الي المحتوي
أوفيسنا

الطباعة مع اخفاء الصفوف التي لا تحتوي بيانات


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

السادة محترفى الاكسيل :

تحية طيب لكم

لدى مشكلة فى برنامج على الاكسيل وهي تكمن فى:

1- لدى 3250 صف مكونة من 6 اعمدة

2- يوجد بالصفوف الاولى صف 1و2و3 كليشات عبارة عن خلايا مدموجة (لا اريد ان يتم فرزها ولكن يتم طباعتها مع كل ورقه)

3- فى نهاية الصف رقم 3250 اجمالى المبالغ المدخلة فى الصف

اريد :

1- زر يتم انشاءه لكي يقوم بفرز الصفوف الموجودة فى الورقة فرز ابجدياً من أ الى ي بعد اكمال ادخال البيانات اعتماداً على الاسماء المدخلة فى العمود B (لا اريد ان يتم فرز الصف رقم 1و2و3 وذلك لوجود بيانات مثل اسم الشركة والسجل التجاري فى خلايا مدموجة)

2- زر يتم انشاءه لكي يقوم باخفاء الصفوف التي لايوجد بها بيانات اعتمادا على البيانات المدخلة فى العمود B وc (بحيث يتم طباعة الصفوف التي بها بيانات ويقوم باخفاء الصفوف الى ليس بها بيانات , وذلك لوجود الصف الذي يوجد فيه الاجمالي في الصف رقم 3250 )

محاولات :

استخدمت كود قام احد الاخوة الكرام بكتابته فى المنتدى ولكن حدث مشكلة وهي:

عند تشغيل الكود عن طريق زر طباعه الذي تم انشاءه يقوم برنامج الاكسل باستخدام CPU بنسبة 100% وكذلك الذاكرة ويحدث عدم استجابة فى برنامج الاكسل ويتوقف البرنامج عن العمل

الكود هو :

Sub MyPrint()

Application.ScreenUpdating = False

With Sheets("Sheet1")

With .UsedRange

For i = 1 To .Rows.Count

If .Cells(i, 1).Value = "" Then

.Cells(i, 1).EntireRow.Hidden = True

End If

Next i

End With

.PrintOut

.Rows.Hidden = False

End With

Application.ScreenUpdating = True

End Sub

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

السلام عليكم ...

جرب الكود التالي :

Sub MyPrint()
  Application.ScreenUpdating = False
  With Sheets("Sheet1")
    With .Range("A4:F3249")
      .Sort Key1:=.Cells(1, 2), Order1:=xlAscending
      For i = 1 To .Rows.Count
        If Application.WorksheetFunction.CountIf(.Rows(i), "") >= 6 Then
          .Rows(i).Hidden = True
        End If
      Next i
    End With
    .PrintOut
    .Rows.Hidden = False
  End With
  Application.ScreenUpdating = True
End Sub

ولكن انتبه إلى ما يلي :

1. لا حظ (من الكود) أن اسم الورقة هو Sheet1 (يمكن تغييره).

2. بالنسبة لتكرار الصفوف الثلاثة الأولى ، يمكنك ذلك عن طريق ما يلي :

انقر على الخيار Page Setup الموجود ضمن القائمة File لتظهر لك نافذة :

ضمن علامة التبويب Sheet حدد الصفوف المراد تكرارها عند طباعة كل صفحة (وكذلك الأعمدة) .

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

الاخ محمد حجازي يعطيك العافية :

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

توقف برنامج الاكسل

ارجو ان تتكرم علي بحل لهذه لهذه المشكلة

والله يعطيك العافية مقدماً

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

السلام عليكم ...

الكود السابق يأخذ وقتاً و لكن نتيجته مضمونة .

يمكنك التقليل من الزمن عن طريق تضيق المجال A4:F3249 الموجود في الكود.

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

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information