Microsoft 365 ajouter date de MODIFICATION devant le nom du fichier

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)
Peut-être pas possible ??
J'ai besoin d'ajouter la date de modification devant le nom d'environ 150 fichiers pour les classer par dates.
Par exemple nom actuel : "Partenariat isiTel5" résultat souhaité : "2019 07 17 Partenariat isiTel5"
Sans titre.jpg
Ces 150 fichiers sont dans le même dossier.

Je ne sais "fichtrement" pas faire ça et je n'ai pas trouvé sur le net !
Auriez-vous la solution ?
Avec mes remerciements,
Amicalement,
lionel,
 
Dernière édition:
Solution
Si l'on veut revenir en arrière en supprimant la date de création du fichier utiliser cette macro :
VB:
Sub RAZ()
Dim chemin$, fso As Object, f As Object
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next 'si un fichier est ouvert
For Each f In fso.GetFolder(chemin).Files
    If f.Name <> ThisWorkbook.Name And f.Name Like "*xl*" Then
        Workbooks(f.Name).Close False 'si le fichier est ouvert on le ferme
        Name chemin & f.Name As chemin & Replace(f.Name, Format(f.DateCreated, "yyyy mm dd "), "")
    End If
Next
End Sub

job75

XLDnaute Barbatruc
Si l'on veut revenir en arrière en supprimant la date de création du fichier utiliser cette macro :
VB:
Sub RAZ()
Dim chemin$, fso As Object, f As Object
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next 'si un fichier est ouvert
For Each f In fso.GetFolder(chemin).Files
    If f.Name <> ThisWorkbook.Name And f.Name Like "*xl*" Then
        Workbooks(f.Name).Close False 'si le fichier est ouvert on le ferme
        Name chemin & f.Name As chemin & Replace(f.Name, Format(f.DateCreated, "yyyy mm dd "), "")
    End If
Next
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
pas testé mais ca doit etre cela
et change moi le dossier c'est pas bon
VB:
Sub Renommer_Patrick()
    Dim chemin$, fichiers, thedate
    '*************************************
    ' heu kézako ca !!!
    'chemin = ThisWorkbook.Path & "C:\Users\lionel\Desktop\Prospects CaCh envoyes en attente2\" ' !!!!!!!!!!!!!!!   'dossier à adapter
    '*************************************
    fichiers = Dir(chemin & "*.xls*")
    Do While fichiers <> ""
        If fichiers.Name <> ThisWorkbook.Name And fichiers.Name Like "*xls*" Then Workbooks(fichier.Name).Close False    'si le fichier est ouvert on le ferme
        thedate = Format(FileDateTime(chemin & fichiers), "yyyy mm dd ")
        Name chemin & fichiers As chemin & thedate & "-" & fichiers
        fichiers = Dir
    Loop
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
OK testé
ca fonctionne comme ca

VB:
Sub Renommer_Patrick()
    Dim chemin$, fichiers, thedate
    '*************************************
    ' heu kézako ca !!!
    chemin = "C:\Users\polux\DeskTop\testarthour\"    ' !!!!!!!!!!!!!!!   'dossier à adapter"
    '*************************************
    fichiers = Dir(chemin & "*.xls*")
    Do While fichiers <> ""
        If ThisWorkbook.Name <> fichiers Then
            thedate = Format(FileDateTime(chemin & fichiers), "yyyy mm dd ")
            Name chemin & fichiers As chemin & thedate & "-" & fichiers
            fichiers = Dir
        End If
    Loop
End Sub
demo4.gif
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
vire cette ligne j'ai copier betement le code de job 75
lenom du fichier actif ne peux pas être modifié donc il faut l'exclure
donc prendre le #21
et comme je l'ai dis tout a l'heure
si tu es amené a modifier une autres fois les fichiers éventuellement ajouté après la dernière modif celle ci ne modifie que ce qui n'ont pas de date devant

VB:
Sub Renommer_Patrick()
    Dim chemin$, fichiers, thedate
    '*************************************
     chemin = "C:\Users\polux\DeskTop\testarthour\"    ' !!!!!!!!!!!!!!!   'dossier à adapter"
    '*************************************
    fichiers = Dir(chemin & "*.*")
    Do While fichiers <> ""
        MsgBox IsDate(Left(fichiers, 10))
        If ThisWorkbook.Name <> fichier Then
            If Not IsDate(Left(fichiers, 10)) Then
                thedate = Format(FileDateTime(chemin & fichiers), "yyyy mm dd ")
                Name chemin & fichiers As chemin & thedate & "-" & fichiers
            End If
        End If
        fichiers = Dir
    Loop
End Sub
pour le coup là tu es en sécurité de tes propres gaffes ;)
 

patricktoulon

XLDnaute Barbatruc
re
oui enlève le msgbox
si ça renomme pas c'est qu'il y a déjà une chaîne de 10 caractères étant une date devant
pourquoi avec toi tout est de suite plus compliqué ???, ;)

comme tu peux le voir dans cette demo ci dessous les fichiers qui ont deja une date ne seront pas modifiés
demo4.gif


salut Laurent ;)
 

Discussions similaires