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

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

قام بنشر

السلام عليكم

عندي 525 ملف محفوظ في فولدر

عندما اريد طباعة الملفات كلها مرة واحدة لا تتم العملية ( فقط كل 15 ملف يتم طباعتها مرة واحدة )

يوجد حل لهذا الموضوع

قام بنشر

وعليكم السلام

أخي الكريم الموضوع غير مكتمل الأركان .. ارفق نماذج بسيطة من ملفاتك ووضح هل الملفات ملفات إكسيل فقط أم أن هناك ملفات أخرى

وإذا كانت ملفات إكسيل هل يوجد أوراق عمل أخرى أم أنها ورقة واحدة فقط؟

وأين الكود الذي يطبع 15 ملف فقط ولا يطبع بقية الملفات؟

 

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

السلام عليكم

ملف يحتوي على مستمسكات  على شكل صور وأخر يأتي على شكل  اكسل بأسماء أصحاب المستمسكات

حاولت أن ارفع اكبر عدد من المستمسكات ولكن تظهر رسالة غير مسموح

 

 

 

 

 

مستمسكات.rar

اكسل.rar

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

هل الملفات كلها في مجلد واحد أم مجلدات متعددة؟ لما لا تذكر التفاصيل وتضع الكود الذي تستخدمه

عموماً جرب الكود التالي ..

'Written:  July 05, 2017
'Author:   Leith Ross

#If Win64 = True Then
    Private Declare PtrSafe Function ShellExecute _
            Lib "shell32.dll" Alias "ShellExecuteA" _
            (ByVal hwnd As LongPtr, _
             ByVal lpOperation As String, _
             ByVal lpFile As String, _
             ByVal lpParameters As String, _
             ByVal lpDirectory As String, _
             ByVal nShowCmd As Long) _
             As LongPtr
#Else
    Private Declare Function ShellExecute _
                          Lib "shell32.dll" Alias "ShellExecuteA" _
                              (ByVal hwnd As Long, _
                               ByVal lpOperation As String, _
                               ByVal lpFile As String, _
                               ByVal lpParameters As String, _
                               ByVal lpDirectory As String, _
                               ByVal nShowCmd As Long) _
                               As Long
#End If

Sub PrintAllFiles()
    Dim ActPrtr         As String
    Dim answer          As Integer
    Dim File            As Variant
    Dim Folder          As Variant
    Dim Item            As Variant
    Dim Items           As Object
    Dim PrtJobs         As Object
    Dim PSEx()          As String
    Dim ret             As Long
    Dim WMI             As Object

    ActPrtr = Split(Application.ActivePrinter, " on ")(0)

    'Printer Status Extended
    ReDim PSEx(1 To 18)
    PSEx(1) = "Other - Not Listed"
    PSEx(2) = "Undetermined"
    PSEx(3) = "Printer is Idle"
    PSEx(4) = "Printer is Printing"
    PSEx(5) = "Printer is Warming Up"
    PSEx(6) = "Printer has Stopped Printing"
    PSEx(7) = "Printer is Offline"
    PSEx(8) = "Printer is Paused"
    PSEx(9) = "An Error occured"
    PSEx(10) = "Printer is Busy"
    PSEx(11) = "Printer is Not Available"
    PSEx(12) = "Printer is Waiting"
    PSEx(13) = "Printer is Processing"
    PSEx(14) = "Printer is Initializing"
    PSEx(15) = "Printer is in Power Save Mode"
    PSEx(16) = "Job is Pending Deletion"
    PSEx(17) = "I/O Active"
    PSEx(18) = "Manual Feed required"

    Set WMI = GetObject("winmgmts:\\.\root\CIMV2")
    Set Items = WMI.ExecQuery("SELECT * FROM Win32_Printer")

    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count > 0 Then
            Folder = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    File = Dir(Folder & "\*.*")

PrintFiles:
    Do While File <> ""
        GoSub CheckPrinterStatus
        ret = ShellExecute(0&, "Print", File, vbNullString, Folder, 1&)
        If ret < 32 Then
            MsgBox "Print Command Failed." & vbLf & vbLf & "Error: " & ret
            Exit Sub
        End If
        File = Dir()
    Loop

    Exit Sub

CheckPrinterStatus:
    For Each Item In Items
        If Item.Name = ActPrtr Then
            If Item.Status <> "OK" Then
                answer = MsgBox(ActPrtr & " Is Not Ready To Print." & vbLf & vbLf _
                              & "Status: " & Item.Status & vbLf & "Cause: " & PSEx(Item.ExtendedPrinterStatus) _
                              & vbLf & vbLf & "Wait For Printer?", vbExclamation + vbYesNo + vbDefaultButton2)
                If answer = vbNo Then
                    answer = MsgBox("Do You Want Clear All Remaining Print Jobs?", vbQuestion + vbYesNo)
                    If answer = vbYes Then GoTo ClearPrintJobs Else Exit Sub
                End If
            End If
        End If
    Next Item

    Return

ClearPrintJobs:
    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set PrtJobs = WMI.ExecQuery("select * from Win32_Printer where PrinterState=0 and PrinterStatus=6")

    For Each Item In PrtJobs
        Item.CancelAllJobs
    Next Item
End Sub

 

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

هي ملفات في فولدر على البارتيشن  (D)

عندما افتح الفولدر تظهر كل الملفات المحفوظة

عندما احدد كل الفايلات عن طريق كونترول A

واعمل كلك ايمن لا تظهر كلمة طباعة

ولكن عندما احدد أقل من (15) ملف واعمل كلك أيمن تظهر كلمة طباعة

اريد من أحدد كل الفايلات تظهر كلمة طباعة

اسف تعتبك وياي وخاصة ان الكود الضخم اكيد متعوب عليه ويأخذ وقت لانجازه - جزيت خيرا

والكود اذا كان يفي بالغرض أين اضع الكود

تم تعديل بواسطه عبدالودود لطيف

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