Note: The other languages of the website are Google-translated. Back to English
تسجيل الدخول  \/ 
x
or
x
شارك الآن  \/ 
x

or

كيفية طباعة صفحات أو ورقة عمل معينة بناءً على قيمة الخلية في 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 يومًا.


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


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

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى...
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات...
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات...
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF...
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2019 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

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

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ryan · 1 years ago
    This was very helpful! Is there a way to print multiple pages? For example, if cell A1 = 5, print pages 1-5.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      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
      • To post as a guest, your comment is unpublished.
        Manny · 5 months ago
        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