yasayd قام بنشر ديسمبر 11, 2016 قام بنشر ديسمبر 11, 2016 (معدل) السلام عليكم كما هو مشار إليه في العنوان عندما أعمل VBA فإن Application.ActivePrinter تعمل بسهولة في أكسل 2007 بينما نفسها لا تعمل عندما أستخدمها مع أكسل 2010 وظيفتها تفعل طابعة محددة مسبقاً لطباعة ورقة العمل يتم كتابتها كالمثال التالي : - Application.ActivePrinter = "HP LaserJet 4 local on LPT1:" حيث أن ( HP LaserJet 4 local ) هو إسم الطابعة و ( : on LPT1 ) هو المنفذ الذي تعمل عليه الطابعة في جهازك * حتى إذا قمت بتسجيل ماكرو في أكسل 2007 والذهاب إلى طباعة ثم إختيار الطابعة فإن هذا الكود سيظهركما هو مكتوب في المثال السابق بينما إذا قمت بنفس العمل وسجلت ما كرو في أكسل 2010 وذهبت إلى طباعة ثم أخترت إحدى الطابعات وضغطت على أمر طباعة فإن هذا الكود لن يظهر إطلاقاً وفقط سيظهر أنك أخترت طباعة الصفحات من كذا إلى كذا في ورقة العمل المطلوب : هل هنالك طريقة ما لتفعيل الكود Application.ActivePrinter وجعله يؤدي وظيفته ؟ أم هل هنالك كود آخر يؤدي نفس الوظيفة ؟ * ألتمس منكم العذر فإني مُبتدئ في الأكسل ولم أدرسه ولم آخذ فيه أي دورات بل دخلت على النت شاهدت بعض الدروس في اليوتيوب لذا ربما تكون تعابيري ليست دقيقة فلست من أهل هذا التخصص . تم تعديل ديسمبر 11, 2016 بواسطه yasayd
ياسر خليل أبو البراء قام بنشر ديسمبر 15, 2016 قام بنشر ديسمبر 15, 2016 وعليكم السلام ActivePrinter.rar
yasayd قام بنشر ديسمبر 15, 2016 الكاتب قام بنشر ديسمبر 15, 2016 23 دقائق مضت, ياسر خليل أبو البراء said: وعليكم السلام ActivePrinter.rar شكراً أخي لتجاوبك النتيجة : - upload foto
ياسر خليل أبو البراء قام بنشر ديسمبر 15, 2016 قام بنشر ديسمبر 15, 2016 Sub Test() Dim strPntName As String strPntName = MatchFullNetworkPrinterName("HP LaserJet Professional P1102", True) If strPntName <> "" Then MsgBox "The Active Printer Has Been Changed Successfully!", vbOKOnly, "Tips" End Sub Function MatchFullNetworkPrinterName(ByVal strNetworkPrinterName As String, Optional ByVal blnToChange As Boolean = False) As String Dim strCurrentPrinterName As String Dim strTempPrinterName As String Dim i As Long strCurrentPrinterName = Application.ActivePrinter i = 0 Do While i < 100 strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":" On Error Resume Next Application.ActivePrinter = strTempPrinterName On Error GoTo 0 If Application.ActivePrinter = strTempPrinterName Then MatchFullNetworkPrinterName = strTempPrinterName Exit Do End If i = i + 1 Loop If Not blnToChange Then Application.ActivePrinter = strCurrentPrinterName End Function 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.