Excel ouvrir le dernier classeurs créé

Résolu/Fermé
Didoo - 19 oct. 2010 à 12:39
 Didoo - 19 oct. 2010 à 15:32
Bonjour,


J'aimerais adapter la formule ci-dessous ( Macro pour ouvrir le dernier documents words créé) pour que celle ci fonctionne sur excel.

Dim Chemin As String
Function DernierFichier(Chemin As String) As String
Dim Fichier As String, DerniereDate As Date
Fichier = Dir(Chemin)
Do While Fichier <> ""
If FileDateTime(Chemin & Fichier) > DerniereDate Then
DerniereDate = FileDateTime(Chemin & Fichier)
DernierFichier = Fichier
End If
Fichier = Dir()
Loop
End Function


Sub OuvrirDernierDoc()
Chemin = "C:\TEST"
ChangeFileOpenDirectory Chemin
workbooks.Open FileName:=DernierFichier(Chemin)
End Sub


La macro excel ne reconnait pas la ligne de code "ChangeFileOpenDirectory Chemin" et me créé une erreur.

Merci pour votre aide



A voir également:

5 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 288
19 oct. 2010 à 13:57
La macro excel ne reconnait pas la ligne de code "ChangeFileOpenDirectory Chemin" et me créé une erreur.
il y a bien d'autres choses que la macro ne reconnait pas....

changeFileOpenDirectory devient Chdir....
mais avant de remplacer cela d'une manière brutale et d'être déçu...
je te conseille de jeter un oeil ( tu pourras toujours le récuperer après ) sur
la partie de l'aide VBA FileSystemObjet.

Tu vas constater plusieurs erreurs / différences .

donc il faut recoder en utilisant la méthode getfolder et la propriété datecreated
A+
0
En rajoutant ChDir (Chemin) ça m'ouvre effectivement les fichiers (notamment lorsqu'ils se trouvent dans mes documents) mais pour des fichiers sur le reseaux la macro m'affiche l'erreur 1004 (fichier introuvable, vérifier l'orthographe et la validité de l'emplacement)
0
En fait j'ai réussi à la retraduire de manière plus ou moins bonne:

Dim Chemin As String
Function DernierFichier(Chemin As String) As String
Dim Fichier As String, DerniereDate As Date

Fichier = Dir(Chemin)
Do While Fichier <> ""
If FileDateTime(Chemin & Fichier) > DerniereDate Then
DerniereDate = FileDateTime(Chemin & Fichier)
DernierFichier = Fichier
End If
Fichier = Dir()
Loop
End Function
Sub OUVRIRLESFICHIERS()
'
' OUVRIRLESFICHIERS Macro

Chemin = "S:\TEST\"
Workbooks.Open Filename:=DernierFichier(Chemin)

End Sub


en gros j'ai simplement supprimer la ligne qui me posait problème.

Tout irait pour le mieux si en fait cela n'occurait pas un autre problème:

En effet la ligne ouvre bien les fichier Excel qui ont été créés dans la même minute que l'exécution de la Macro, elle affiche l'erreur d'exécution 1004 (fichier introuvable, vérifier l'orthographe et la validité de l'emplacement) pour les fichiers créé de manière antérieur à la minute d'exécution de la macro ...
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 288
19 oct. 2010 à 14:57
j'ai dis " Tu vas constater plusieurs erreurs / différences . "

je regarde si j'ai un truc dans ma boite à clous ... patiente un moment s'il te plait.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 288
Modifié par Bidouilleu_R le 19/10/2010 à 15:54
donc comme promis,

je l'ai adapté pour que tu t'y retrouves un peu.
ça marche sur 2003 et 2007.
A+
Si satisfait met en résolu.



Sub Ouvre_le_dernier_xls() 

Dim Chemin As String 

Chemin = "C:\Data" 

Y = DernierFichierCreer(Chemin) 
If Y <> "" Then 
    Workbooks.Open Chemin & "\" & Y 
End If 
End Sub 



Function DernierFichierCreer(specdossier) As String 

    Dim fso, oDossier, oFichier, sFichier 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set oDossier = fso.getfolder(specdossier) 
    Set oFichier = oDossier.Files 
    For Each sFichier In oFichier 
        If Right(sFichier.Name, 3) <> "xls" Then 
           ' ce n'est pas un fichier xls 
        Else 
            ' c'est un fichier xls 
            If sFichier.datecreated > DerniereDate Then 
               DerniereDate = sFichier.datecreated 
               DernierFichierCreer = sFichier.Name 
            End If 
       End If 
    Next 
End Function
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup ça marche au poil !!!

Je n'y serait jamais arrivé
0