Comment trier dans un document fermé

Mister Buzz

XLDnaute Nouveau
Bonjour

J'expose mon problème:
Dans une macro sous excel, je transforme mon classeur en pdf (avec PDFCréator) avec la date et l'heure de création dans le nom de ce fichier PDF ( le tout de manière transparente pour l'utilisateur). Je dois ensuite l'envoyer par mail.
Sauf que je dois savoir le nom exacte du fichier PDF ainsi créé. Il me faut donc trier le dossier dans lequel j'ai enregistré mon doc.PDF et trouver le dernier enregistrement... et là je rame sévère

Merci d'avance
 

MichelXld

XLDnaute Barbatruc
bonjour Mister Buzz , bonjour cher Pascal


j'espere que cet exemple pourra t'aider

Option Explicit
Option Base 1

Sub triDecroissant_fichiersRepertoire_dateModification()
Dim Fichier As String, Chemin As String
'necessite d'activer la reference Microsoft Scripting RunTime
Dim Fso As Scripting.FileSystemObject
Dim FileItem As Scripting.File
Dim Tableau()
Dim m As Integer, i As Integer
Dim z As Integer, Valeur As Integer
Dim Cible As Variant

'---lister les fichiers du répertoire ---
Chemin = 'C:\\\\\\\\Documents and Settings\\\\\\\\michel\\\\\\\\dossier'
Fichier = Dir(Chemin & '\\\\\\\\*.pdf')

Do
m = m + 1
ReDim Preserve Tableau(2, m)
Tableau(1, m) = Fichier

Set Fso = CreateObject('Scripting.FileSystemObject')
Set FileItem = Fso.GetFile(Chemin & '\\\\\\\\' & Fichier)

Tableau(2, m) = Left(FileItem.DateLastModified, 10)

Fichier = Dir
Loop Until Fichier = ''

'---trier les fichiers par ordre décroissant de création ---
Do
Valeur = 0
For i = 1 To m - 1
If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
For z = 1 To 2
Cible = Tableau(z, i)
Tableau(z, i) = Tableau(z, i + 1)
Tableau(z, i + 1) = Cible
Next z
Valeur = 1
End If
Next i
Loop While Valeur = 1

MsgBox 'Le dernier fichier pdf modifié dans le répertoire :' & _
vbLf & Tableau(1, 1) & vbLf & Tableau(2, 1)
End Sub




bonne soirée
MichelXld

Message édité par: michelxld, à: 24/03/2006 17:53
 
M

Mister Buzz

Guest
Merci pour la réponse.

J'avais fini par trouver by myself... ce qui donne:

Public truc, Cible As String

Public Sub Saveascopy()

Sheets('BRQ').Select
Application.ActivePrinter = 'PDFcreator sur Ne01:'
ActiveWindow.SelectedSheets.PrintOut , , , , , False

'Cherche dans le dossier le dernier '.pdf' créé
'et affecte le nom du fichier trouvé à la variable 'Cible'
Set fs = Application.FileSearch
With fs
.LookIn = 'C:\\'
.Filename = '*.pdf'
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
peigne = Format(FileDateTime(.FoundFiles(i)), 'yy mm dd hh:mm:ss')
If peigne > truc Then
truc = peigne
Cible = .FoundFiles(i)
End If

Next i
Else
On Error Resume Next
End If
End With

'Envoie le tout via Outlook Express
Dim dest$, sujet$, texte$
Dim NompI
Dim Rep
dest = 'macintruc@zimbrec.fr'
sujet = 'BRQ'
texte = 'BRQ du jour'
Shell 'C:\\Program Files\\Outlook Express\\msimn.exe ' & _
'/mailurl:mailto:' & dest & _
'?subject=' & sujet & _
'&Body=' & texte & ', 3', vbMaximizedFocus
SendKeys '%I' & 'p' & Cible & '~' & '{TAB 6}' & '^a' & '~' & '%s'

End Sub

Et ça marche!!!

Si quelqu'un à un commentaire sur ce code, il est le bienvenue.

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 910
Membres
104 303
dernier inscrit
Patdec