Bonjour à tous,
Je dois imprimer des fichiers générés en grand nombre, et ce n'est pas très sympa de devoir les trier de nouveau par numéro car les impressions se font de manière "aléatoire". Vu mon incompétence en VBA, je fais appel à vous afin de trouver solution à mon problème.
J'aimerais que les fichiers sélectionnés (pièces jointes de mails) soient triés par ordre alphabétique et ainsi imprimés cet ordre.
J'utilise déjà actuellement un module qui me permet d'imprimer en "deux clics" les pièces jointes des mails sélectionnés. Cette fonction de tri serait un réel confort en plus dans cette tâche.
Je précise que j'ai regardé si les paramètres imprimantes étaient la cause, je n'ai rien trouvé.
Voici les détails du module utilisé actuellement:
Sub PrintAllAttachmentsInMultipleMails()
Dim xFileSystemObj, xShellApp As Object
Dim xNameSpace, xNameSpaceItem, xItem As Object
Dim xTempFldPath, xFilePath As String
Dim xSelItems As Outlook.Selection
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
On Error Resume Next
Set xFileSystemObj = CreateObject("Scripting.FileSystemObject")
xTempFldPath = xFileSystemObj.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFileSystemObj.GetSpecialFolder(2) For saving temporary files
If xFileSystemObj.FolderExists(xTemfldpath) = False Then 'create temporary folder
xFileSystemObj.CreateFolder (xTempFldPath)
End If
Set xSelItems = Outlook.ActiveExplorer.Selection
Set xShellApp = CreateObject("Shell.Application")
Set xNameSpace = xShellApp.NameSpace(0)
For Each xItem In xSelItems
If xItem.Class = OlObjectClass.olMail Then
Set xMailItem = xItem
Set xAttachments = xMailItem.Attachments
For Each xAttachment In xAttachments
xFilePath = xTempFldPath & "\" & xAttachment.FileName
xAttachment.SaveAsFile (xFilePath)
Set xNameSpaceItem = xNameSpace.ParseName(xFilePath)
xNameSpaceItem.InvokeVerbEx ("print")
Next
End If
Next
Set xItem = Nothing
Set xNameSpaceItem = Nothing
Set xNameSpace = Nothing
Set xShellApp = Nothing
Set xFileSystemObj = Nothing
End Sub
Merci d'avance pour votre aide précieuse.
Cordialement
Je dois imprimer des fichiers générés en grand nombre, et ce n'est pas très sympa de devoir les trier de nouveau par numéro car les impressions se font de manière "aléatoire". Vu mon incompétence en VBA, je fais appel à vous afin de trouver solution à mon problème.
J'aimerais que les fichiers sélectionnés (pièces jointes de mails) soient triés par ordre alphabétique et ainsi imprimés cet ordre.
J'utilise déjà actuellement un module qui me permet d'imprimer en "deux clics" les pièces jointes des mails sélectionnés. Cette fonction de tri serait un réel confort en plus dans cette tâche.
Je précise que j'ai regardé si les paramètres imprimantes étaient la cause, je n'ai rien trouvé.
Voici les détails du module utilisé actuellement:
Sub PrintAllAttachmentsInMultipleMails()
Dim xFileSystemObj, xShellApp As Object
Dim xNameSpace, xNameSpaceItem, xItem As Object
Dim xTempFldPath, xFilePath As String
Dim xSelItems As Outlook.Selection
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
On Error Resume Next
Set xFileSystemObj = CreateObject("Scripting.FileSystemObject")
xTempFldPath = xFileSystemObj.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFileSystemObj.GetSpecialFolder(2) For saving temporary files
If xFileSystemObj.FolderExists(xTemfldpath) = False Then 'create temporary folder
xFileSystemObj.CreateFolder (xTempFldPath)
End If
Set xSelItems = Outlook.ActiveExplorer.Selection
Set xShellApp = CreateObject("Shell.Application")
Set xNameSpace = xShellApp.NameSpace(0)
For Each xItem In xSelItems
If xItem.Class = OlObjectClass.olMail Then
Set xMailItem = xItem
Set xAttachments = xMailItem.Attachments
For Each xAttachment In xAttachments
xFilePath = xTempFldPath & "\" & xAttachment.FileName
xAttachment.SaveAsFile (xFilePath)
Set xNameSpaceItem = xNameSpace.ParseName(xFilePath)
xNameSpaceItem.InvokeVerbEx ("print")
Next
End If
Next
Set xItem = Nothing
Set xNameSpaceItem = Nothing
Set xNameSpace = Nothing
Set xShellApp = Nothing
Set xFileSystemObj = Nothing
End Sub
Merci d'avance pour votre aide précieuse.
Cordialement