انتقل إلى المحتوى الرئيسي

كيفية طباعة صفحات أو ورقة عمل معينة بناءً على قيمة الخلية في Excel؟

هل سبق لك أن حاولت طباعة صفحة أو ورقة عمل معينة بناءً على قيمة خلية في Excel؟ وكيف نحققه؟ يمكن أن تساعدك الطرق الواردة في هذه المقالة في حلها بالتفصيل.

اطبع صفحة معينة بناءً على قيمة الخلية برمز VBA
اطبع ورقة عمل معينة بناءً على قيمة الخلية برمز VBA


اطبع صفحة معينة بناءً على قيمة الخلية برمز VBA

على سبيل المثال ، تريد طباعة صفحة معينة مثل الصفحة 1 من ورقة العمل الحالية تلقائيًا عند إدخال رقم الصفحة 1 في الخلية A1 في ورقة العمل الحالية. يمكنك القيام بما يلي لتحقيق ذلك.

1. حدد الخلية التي تحتوي على رقم الصفحة التي تريد الطباعة بناءً عليها ، ثم اضغط قديم و F11 مفاتيح في نفس الوقت لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة او شباك. ثم اضغط إدراج > وحدة.

2. ثم ميكروسوفت فيسوال باسيك للتطبيقات نافذة منبثقة ، يرجى نسخ ولصق رمز VBA التالي في ملف رمز نافذة.

كود فبا: طباعة الصفحة على أساس قيمة الخلية

Option Explicit
Sub Print_Pages()
Dim xPage As Integer
Dim xYesorNo As Integer
With ActiveCell
    If Not IsEmpty(.Value) And IsNumeric(.Value) Then
        xPage = .Value
    Else: MsgBox "Please specify a cell and enter a page in cell"
        Exit Sub
    End If
End With
xYesorNo = MsgBox("Ready to print page" & xPage & " ", vbYesNo, "Kutools for Excel")
If xYesorNo = vbYes Then
    ActiveSheet.PrintOut from:=xPage, To:=xPage, preview:=True
Else
    Exit Sub
End If
End Sub

3. صحافة F5 مفتاح لتشغيل الكود. في ظهرت كوتولس ل إكسيل مربع الحوار، انقر فوق نعم لطباعة صفحة معينة ، أو انقر فوق لا زر للخروج من مربع الحوار إذا كنت لا تريد الطباعة. انظر لقطة الشاشة:

ثم تفتح نافذة المعاينة لصفحة معينة من ورقة العمل الحالية ، يرجى النقر فوق طباعة زر لبدء الطباعة.


اطبع صفحة معينة بناءً على قيمة الخلية برمز VBA

لنفترض أنك تريد طباعة ورقة العمل النشطة عندما تكون القيمة في الخلية B2 بهذه الورقة مساوية للرقم 1001. يمكنك تحقيق ذلك باستخدام رمز VBA التالي. الرجاء القيام بما يلي.

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد طباعتها بناءً على قيمة الخلية ، ثم انقر فوق "نعم" عرض الرمز من قائمة النقر بزر الماوس الأيمن.

2. ثم ميكروسوفت فيسوال باسيك للتطبيقات نافذة منبثقة ، يرجى نسخ ولصق رمز فبا التالي في نافذة الكود.

كود فبا: طباعة ورقة العمل على أساس قيمة الخلية

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range, xYesorNo As Integer
Set xCell = ActiveSheet.Range("B2")
If Application.Intersect(Target, xCell) Is Nothing Then Exit Sub
    If xCell.Value = 1001 Then
        xYesorNo = MsgBox("Ready to print the specified worksheet? ", vbYesNo, "Kutools for Excel")
        If xYesorNo = vbYes Then
          ActiveSheet.PrintOut
        Else
           Exit Sub
        End If
End If
End Sub

ملاحظات: يمكنك تغيير الخلية وقيمة الخلية في الكود حسب حاجتك.

3. صحافة قديم + Q لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

عند إدخال الرقم 1001 في الخلية B2 ، أ كوتولس ل إكسيل ينبثق مربع الحوار ، الرجاء النقر فوق نعم زر لبدء الطباعة. أو انقر فوق لا زر للخروج من مربع الحوار مباشرة بدون طباعة. انظر لقطة الشاشة:

تلميح: إذا كنت تريد طباعة صفحات غير متتالية مباشرة مثل الصفحات 1 و 6 و 9 في ورقة العمل الحالية ، أو طباعة جميع الصفحات الزوجية أو الفردية فقط ، يمكنك تجربة طباعة الصفحات المحددة فائدة pf كوتولس ل إكسيل كما هو موضح أدناه لقطة الشاشة. يمكنك الذهاب إلى قم بتنزيل البرنامج مجانًا دون أي قيود خلال 30 يومًا.


مقالات ذات صلة:

أفضل أدوات إنتاجية المكتب

الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

علامة تبويب kte 201905


يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This was very helpful! Is there a way to print multiple pages? For example, if cell A1 = 5, print pages 1-5.
This comment was minimized by the moderator on the site
Hi Ryan,
If you want to print consecutive pages such as 1-5 in a worksheet based on a cell value, please specify a cell such as A1 as Text formatting, type 1-5 into it, keep this cell selecting, and then run the below VBA code.

Sub Print_Pages()
Dim xPage As String
Dim xYesorNo As Integer
Dim xI As String
Dim xPArr() As String
Dim xIS, xIE, xF, xNum As Integer
xPage = ActiveCell.Value
xYesorNo = MsgBox("Ready to print page" & xPage & " ", vbYesNo, "Kutools for Excel")
If xYesorNo = vbYes Then
xPArr() = Split(xPage, "-")
If UBound(xPArr) = 0 Then
If IsEmpty(xPage) And IsNumeric(xPage) Then
MsgBox "Please specify a cell and enter a page in cell"
Exit Sub
End If
xNum = Int(xPage)
ActiveSheet.PrintOut from:=xNum, To:=xNum, preview:=True
ElseIf UBound(xPArr) = 1 Then
On Error GoTo Err01
xIS = Int(xPArr(0))
xIE = Int(xPArr(1))
If xIS < xIE Then
For xF = xIS To xIE
ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
Next
Else
For xF = xIE To xIS
ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
Next
End If
Else
MsgBox "Please enter the valid data", vbOKOnly, "Kutools for Excel"
Exit Sub
End If
Else
Exit Sub
End If
Exit Sub
Err01:
MsgBox "Please enter the correct page scope", vbOKOnly, "Kutools for Excel"
End Sub
This comment was minimized by the moderator on the site
Thank you. I have the same issue I want to print pages based on cell value. Lets say variable changes i.e page 1-5 and then some time 2-6. So I have a field which will calculate and will put that in text format as suggested.But for some reason it doesnt work for me. It doesnt prints any pages.Can you please advise
This comment was minimized by the moderator on the site
Did you ever figure out how to get this working?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations