Bonjour,
je cherchais une marcro qui ouvre le fichier le plus récent d'un répertoire, j'ai trouvé quelque chose d'intéressant sur le net:
	
	
	
	
	
		
	
	
	
	
	
		
	
	
	
	
	
		
	
	
	
	
	
		
ça fonctionne (même si je ne saisi pas bien le fonctionnement), il me suffit d'indiquer mon dossier de recherche.
Maintenant, je veux dans une seconde macro (ou alors à la suite de celle-ci, mais je ne vois pas bien comment), faire une suite d'actions (tris, recherchev, mise en forme etc) qui utilise pour partie le fichier ouvert par la 1ere macro.
Le problème, c'est que le nom du fichier appelé par la 1ere macro est amené à être changé chaque jour: comment faire pour que ce cette seconde macro sache de quel fichier je parle quand je lui demande d'aller y faire ses recherchev etc...?
merci d'avance, pour votre aide!
cordialement
	
		
			
		
		
	
				
			je cherchais une marcro qui ouvre le fichier le plus récent d'un répertoire, j'ai trouvé quelque chose d'intéressant sur le net:
		Code:
	
	
	Option Explicit
Option Base 1
 
Dim h As Integer
Dim Tableau2()
 
 
Sub listeDossiersEtSousDossiers()
Dim Racine As String, recentDir As String
 
Racine = "C:\Documents and Settings\michel\dossier"
ListeSousRepertoires Racine, True 'recherche le repertoire le + récent
 
    recentDir = triDecroissant(Tableau2())
    Erase Tableau2
    h = 0
 
    listeFichiers_dateModification recentDir
    MsgBox triDecroissant(Tableau2())
 
Erase Tableau2
h = 0
End Sub
	
		Code:
	
	
	Sub ListeSousRepertoires(SourceFolderName As String, _
IncludeSubfolders As Boolean) ' adapté de Ole P Erlandsen
Dim Fso As Object, SourceFolder As Object, SubFolder As Object
Dim RepItem As Object
 
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(SourceFolderName)
 
    h = h + 1
    ReDim Preserve Tableau2(2, h)
    Tableau2(1, h) = SourceFolder
    Tableau2(2, h) = SourceFolder.DateLastModified
 
    If IncludeSubfolders Then
        For Each SubFolder In SourceFolder.subFolders
        ListeSousRepertoires SubFolder.Path, IncludeSubfolders
        Next SubFolder
    End If
 
End Sub
	
		Code:
	
	
	Sub listeFichiers_dateModification(Chemin As String)
Dim Fichier As String
Dim Fso As Object, FileItem As Object
 
Fichier = Dir(Chemin & "\*.*")
 
Do
    h = h + 1
    ReDim Preserve Tableau2(2, h)
 
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set FileItem = Fso.GetFile(Chemin & "\" & Fichier)
 
    Tableau2(1, h) = FileItem
    Tableau2(2, h) = FileItem.DateLastModified 'lastmodified
 
    Fichier = Dir
Loop Until Fichier = ""
 
End Sub
	
		Code:
	
	
	Function triDecroissant(Tableau()) As String
Dim i As Integer
Dim z As Byte, Valeur As Byte
Dim Cible As Variant
 
Do
    Valeur = 0
    For i = 1 To h - 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
 
 
'--- le plus récent ---
triDecroissant = Tableau(1, 1)
End Function
	ça fonctionne (même si je ne saisi pas bien le fonctionnement), il me suffit d'indiquer mon dossier de recherche.
Maintenant, je veux dans une seconde macro (ou alors à la suite de celle-ci, mais je ne vois pas bien comment), faire une suite d'actions (tris, recherchev, mise en forme etc) qui utilise pour partie le fichier ouvert par la 1ere macro.
Le problème, c'est que le nom du fichier appelé par la 1ere macro est amené à être changé chaque jour: comment faire pour que ce cette seconde macro sache de quel fichier je parle quand je lui demande d'aller y faire ses recherchev etc...?
merci d'avance, pour votre aide!
cordialement