Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

afichage dans une liste

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gildas lechat

XLDnaute Occasionnel
Bonjour le forum,
🙂
Besoin d'une aide pour créer un code ayant la fonction ci dessous.

Afficher dans une zone de liste les fichiers présent dans le répertoire ci-contre
"P:\Atelier CONTROLES\Défautèque" l'ensemble des dossiers avec une date de modification < 14 jours de la date du jour

Merci de votre aide
Gildas
 

Pièces jointes

Re : afichage dans une liste

Bonjour,
Modifie ce code a ta volonté, il fera exactement ce que tu demande. (A Adapter)


Dans Workbook:
Code:
Private Sub Workbook_Open()
Dim myRange As Range
Dim nomFic As String



With Sheets("Feuil1"): .Range("A2:E" & .Range("A65536").End(xlUp).Row + 1).ClearContents: End With
Set DOSSIER_A_FOUILLER = CreateObject("Shell.Application")
Set Existing_Files = DOSSIER_A_FOUILLER.Namespace("P:\Atelier CONTROLES\Défautèque")

For Each element In Existing_Files.Items

    If Format(Existing_Files.GetDetailsOf(element, 2), ">") Like "*EXCEL*" Then
        
        If element.Name <> ThisWorkbook.Name And Left(element.Name, 1) = "*" Then
            With Sheets("Feuil1")
                Set myRange = .Range("A" & .Range("A65536").End(xlUp).Row + 1)
                nomFic = Replace(element.Name, ".xls", "")
                v = Split(nomFic, "_")
                myRange = v(1)
                fic = myRange
                If Not d.exists(fic) Then d.Add fic, fic
                myRange.Offset(0, 1) = v(0) & "_"
                myRange.Offset(0, 2) = Replace(Replace(nomFic, myRange.Offset(0, 1), ""), myRange, "")
                myRange.Offset(0, 3) = nomFic
                .Range("E2").Resize(d.Count, 1) = Application.Transpose(d.keys)
            End With
        End If
        
    End If
      
Next element

Feuil1.Select
End Sub
 
Dernière édition:
Re : afichage dans une liste

Bonjour le forum,🙂

Ci dessous la macro qui répond à mes attentes (ou presque)
Le code
Cells(i, 2) = Format(DatelastModified, "dd/mm/yy")
plante la macro.
Pouvez vous m'aider?

D'autre part, est il possible de limiter l'affichage sur les dossiers avec une date de modification < 15 jours par rapport à la date du jour?
Merci d'avance
Gildas

 
Re : afichage dans une liste

Voilà une macro qui remplit une listbox avec uniquement les noms des fichiers d'un répertoire dont la dernière date de modification est inférieure à 14 jours:

Sub ListeFichier(MyPath As String)
'je déclare
Dim MyFile
Dim texte_ListBox As String
Dim ModifDate As Date


'je lis le nom du fichier
MyFile = Dir(MyPath)
'tant que j'ai des fichier je continu la procédure
Do While MyFile <> ""
'procédure à éxécuter

'je lis la date de modification de mon fichier
ModifDate = FileDateTime(MyPath & "\" & MyFile)
'si ma date est inférieur à 20 jours je la met dans la combobox
If Now - ModifDate < 14 Then
texte_ListBox = MyFile & " " & ModifDate
Sheets("Feuil1").ListBox1.AddItem texte_ListBox

End If
' MyFile & " " & DateValue(ModifDate)
'j'initialise MyFile pour traiter le fichier suivant
MyFile = Dir
Loop
End Sub

On utilise la procédure comme ceci: Call ListeFichier("chemin du dossier")

Oranger
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…