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

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

قام بنشر

لدي ملف اكسيل . وزر طباعة لتقرير .

هل بالامكان تغيير الامر ليقوم بطباعة التقرير على طابعة متوفرة لدي وبنفس الوقت طباعة التقرير على طابعة افتراضية pdf لحفظ التقرير بشكل ورقة

مع جزيل الشكر

  • أفضل إجابة
قام بنشر

حسب فهمي للمطلوب يتم تنفيذ أمر الطباعة أولا

ActiveSheet.PrintOut

ثم سطر التصدير إلى. Pdf في نفس مسار ملف الاكسل باسم FileName.pdf الذي يمكن تغييره 

ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & "FileName.pdf", , , False

بالتوفيق 

  • Like 2
قام بنشر

الكود هو

Sub MyPrint()
  Application.ScreenUpdating = False
  With Sheets(" Print_Report")
    With .Range("B10:I20")
      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()
Dim i
  Application.ScreenUpdating = False
  With Sheets(" Print_Report")
    With .Range("B10:I20")
      For i = 1 To .Rows.Count
        If .Cells(i, 1).Value = "" Then
          .Cells(i, 1).EntireRow.Hidden = True
        End If
      Next i
    End With
    '==========================
    Application.Dialogs(xlDialogPrinterSetup).Show
    '==========================
    .PrintOut
    .Rows.Hidden = False
  End With
  Application.ScreenUpdating = True
End Sub
 

 

تم تعديل بواسطه حسين مامون
قام بنشر

اخي حسين

شكرا جزيلا على مساعدتك وباعتقادي انه حل يمكن الاعتماد عليه وان كان يلزمني الضغط على زر الطباعة مرتين واختيار الطابعة في كل مرة

ولكن السؤال هل يمكن تعديل الكود للقيام بالطباعة بآن واحد على طابعتين من دون اظهار الطابعة المراد العمل عليها

 

التقاط.PNG

قام بنشر (معدل)

هذا الكود يطبع بطابعتية مختلفتين ولكن ل ادري هل بامكانك عمل مجهود للحصول على اسماء الطابعتين لديك

Sub print1()

Dim s, u
s = "Canon MF3010 sur Ne07:"  ' اسم الطابعة الاولى
u = "HP LaserJet P1005 sur Ne03:" 'اسم الطابعة الثانية
'===============
Application.ActivePrinter = s
Range("a1:e10").PrintOut  ' الطباعة بالطابعة الاولى
'===============
Application.ActivePrinter = u
Range("a1:e10").PrintOut  ' الطباعة بالطابعة الثانية

End Sub

وهذا الرابط للحصول على اسم الطابعة

 

 

تم تعديل بواسطه حسين مامون
  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information