الجزيرة قام بنشر يناير 9, 2012 مشاركة قام بنشر يناير 9, 2012 السلام عليكم ورحمة الله وبركاته أخواني الكرام كيف يمكن تحديد طابعة معينة في كود الطباعة وهي ( EPSON LQ-690 ) مع العلم بأنها الطابعة الإفتراضية والسبب أنه تتم الطباعة على طابعة الليزر في حال كانت تعمل . رابط هذا التعليق شارك More sharing options...
أ / محمد صالح قام بنشر يناير 9, 2012 مشاركة قام بنشر يناير 9, 2012 أخي الكريم الجزيرة تتم الطباعة على الطابعة الافتراضية لا على طابعة أخرى مهما يكون عدد الطابعات الموصل بالجهاز ولا ستعمال طابعة غير الافتراضية يجب تنشيطها أولا باستعمال ActivePrinter = "EPSON LQ-690" ثم أمر الطباعة 2 رابط هذا التعليق شارك More sharing options...
محمد يحياوي قام بنشر يناير 9, 2012 مشاركة قام بنشر يناير 9, 2012 يمكنك فتح صندوق حوار لاختيار الطابعة بهذا الكود Application.Dialogs(xlDialogPrinterSetup).Show 1 رابط هذا التعليق شارك More sharing options...
الجزيرة قام بنشر يناير 10, 2012 الكاتب مشاركة قام بنشر يناير 10, 2012 أخواني الكرام الأخ / mas123 و الأخ / يحياوي شكراً لكم ولمشاركتكم القيمة : ) رابط هذا التعليق شارك More sharing options...
الجزيرة قام بنشر يناير 10, 2012 الكاتب مشاركة قام بنشر يناير 10, 2012 أخي العزيز / محمد صالح للأسف لم تفلح الطريقة بعد تجربتها تظهر نافذة ايرور المشكلة أنه عند طباعة أي شئ على طابعة الليزر لابد من أغلاق الاكسل ومن ثم فتح البرنامج كي استطيع طباعة سند القبض على طابعة الابسون وفي حالة عدم اغلاق الاكسل وطباعة سند قبض يتجه مباشرة الى الليزر وهذا يؤثر في الترحيل . رابط هذا التعليق شارك More sharing options...
أ / محمد صالح قام بنشر يناير 10, 2012 مشاركة قام بنشر يناير 10, 2012 ما نص رسالة الخطأ؟ أو يمكنك تصويرها بزر print screen 1 رابط هذا التعليق شارك More sharing options...
الجزيرة قام بنشر يناير 10, 2012 الكاتب مشاركة قام بنشر يناير 10, 2012 تفضل :- رابط هذا التعليق شارك More sharing options...
أ / محمد صالح قام بنشر يناير 10, 2012 مشاركة قام بنشر يناير 10, 2012 جرب أن تستعمل المسار الكامل Application.ActivePrinter="EPSON LQ-690" 1 رابط هذا التعليق شارك More sharing options...
الجزيرة قام بنشر يناير 11, 2012 الكاتب مشاركة قام بنشر يناير 11, 2012 نفس الرسالة أخي الكريم ولكن بدلاً من Global تغيرت إلى Application رابط هذا التعليق شارك More sharing options...
أفضل إجابة أ / محمد صالح قام بنشر يناير 11, 2012 أفضل إجابة مشاركة قام بنشر يناير 11, 2012 أخي الكريم الجزيرة كود activeprinter هو الخاص بتنشيط طابعة معينة للطباعة عليها ولا يوجد غيره لعمل ذلك فإما أن يكون الخطأ في اسم الطابعة أو في اتصال الطابعة بالجهاز وتأكد أنه تظهر أسفل رمز الطابعة كلمة ready (جاهز) قبل الطباعة ولمعرفة اسماء الطابعات الموصلة بالجهاز يمكنك استعمال هذا الكود Private Const PRINTER_ENUM_LOCAL = &H2 Private Const PRINTER_ENUM_CONNECTIONS = &H4 Private Declare Function EnumPrinters Lib "winspool.drv" _ Alias "EnumPrintersA" _ (ByVal flags As Long, _ ByVal name As String, _ ByVal Level As Long, _ pPrinterEnum As Any, _ ByVal cdBuf As Long, _ pcbNeeded As Long, _ pcReturned As Long) _ As Long Private Declare Function StrLen Lib "kernel32" _ Alias "lstrlenA" _ (ByVal Ptr As Long) _ As Long Private Declare Function StrCopy Lib "kernel32" _ Alias "lstrcpyA" _ (ByVal RetVal As String, _ ByVal Ptr As Long) _ As Long Private Function CopyStringFromPtr(ByVal pSource As Long) As String CopyStringFromPtr = Space$(StrLen(pSource)) StrCopy CopyStringFromPtr, pSource End Function Public Function GetPrinterNames() As Variant Dim fSuccess As Boolean, lBuflen As Long, lFlags As Long Dim aBuffer() As Long, lEntries As Long Dim iCount As Integer, aPrinters() As String lFlags = PRINTER_ENUM_LOCAL Or PRINTER_ENUM_CONNECTIONS Call EnumPrinters(lFlags, vbNullString, 1, 0, 0, lBuflen, lEntries) ReDim aBuffer(lBuflen \ 4) fSuccess = EnumPrinters( _ lFlags, _ vbNullString, _ 1, _ aBuffer(0), _ lBuflen, _ lBuflen, _ lEntries) <> 0 If fSuccess And lEntries > 0 Then ReDim aPrinters(lEntries - 1) For iCount = 0 To lEntries - 1 aPrinters(iCount) = CopyStringFromPtr(aBuffer(iCount * 4 + 2)) Next GetPrinterNames = aPrinters End If End Function Public Sub GetPrinterList() Dim aPrinters As Variant, i As Integer aPrinters = GetPrinterNames If IsArray(aPrinters) Then For i = 0 To UBound(aPrinters) Debug.Print aPrinters(i) Next End If End Sub لذلك يجب أولا التأكد من توصيل الطابعة وجاهزيتها وثانيا اسمها الصحيح ثم تستعمل activeprinter وفقنا الله وإياكم لكل خير 2 رابط هذا التعليق شارك More sharing options...
احمدزمان قام بنشر يناير 11, 2012 مشاركة قام بنشر يناير 11, 2012 السلام عليكم و رحمة الله وبركاته بعد اذنك استاذ ماس كما قلت الخطأ في اسم الطابعة لذلك قم بتسجيل ماكرو اضغط Ctl+P يظهر مربع حوار الطباعة يجب هنا الآن ان تختار الطابعة يدويا حتى وان كانت موجودة امامك ثم موافق انهي تسجيل الكود اذهب الى الكود الذي تم تسجيلة انسخ السطر الخاص باسم الطابعة من هذا الكود وضعه في الكود الخاص بك باذن الله سوف تنجح التجربة مع التحية رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان