Résolu 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,
 
Ce fil a été résolu! Aller à la solution…
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Arthour, Laurent,
Un essai en PJ.
N'étant pas complètement stupide, je ne renomme pas les fichiers.
Je les duplique et renomme la copie.
Donc à la fin dans le dossier vous avez les anciens et nouveaux fichiers.
Vous triez par date vous vérifiez que tout est ok, et si oui vous supprimez les anciens.

Attention ! Si un de vos fichiers contient un accent spécial, du genre de l'image ci dessous, il ne sera pas dupliqué.
En effet lu par XL, le "g bizarre" de ce nom est transformé en "g" et la copie n'est plus possible puisque les deux noms sont différents.
Donc bien vérifié dans la liste de droite que tous les fichiers seront renommés, sinon ne pas détruire ce fichier et le renommer à la main.

1.jpg
 
Ce message a été identifié comme étant une solution!

Fichiers joints

Dernière édition:

laurent950

XLDnaute Accro
Bonjour lionel,
Je vais t'aider :
Cette procédure liste les methadones fichier excel par vba.

Comment récupérer des propriétés avec BuiltinDocumentProperties

VB:
Option Explicit
Sub tst()
Dim DocProp As DocumentProperty
Dim i As Integer
    On Error Resume Next
    For Each DocProp In ThisWorkbook.BuiltinDocumentProperties
        i = i + 1
        ThisWorkbook.Worksheets(1).Cells(i, 1) = DocProp.Name
        ThisWorkbook.Worksheets(1).Cells(i, 2) = DocProp.Value
    Next DocProp
End Sub
puis les modifier à l'aide de la liste récupérer dans la feuille Excel.

VB:
' Donc
Sub testBis()
'Modifie les commentaires (Exemple ci-dessous)
    ThisWorkbook.BuiltinDocumentProperties("Last save time").Value = "01/05/2020  12:00:16"
End Sub
Complément sur gestion Fichier et dossier


http://www.info-3000.com/vbvba/fichiers/index.php

cdt

cdt
Laurent950
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, laurent950, sylvanu,

Pour renommer les fichiers on peut utiliser cette macro :
VB:
Sub Renommer()
Dim chemin$, fso As Object, f As Object, fn$, p%
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
        fn = chemin & f.Name
        p = InStrRev(fn, "\")
        Name fn As Left(fn, p) & Format(f.DateCreated, "yyyy mm dd ") & Mid(fn, p + 1)
    End If
Next
End Sub
A+
 
Ce message a été identifié comme étant une solution!

laurent950

XLDnaute Accro
Bonjour Lionel,
Je comprend pas vraiment, vous avez évoqué dans votre énoncé une modification de date de création de fichier, avec une image à l'appuis.
Ci vous avez envie de renommer des fichiers excel c'est bien différents !

Cdt
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
une question comme ça en passant
ces fichiers sont ils mis ajours ou modifier plusieurs fois????

pour les property built il n'y a rien a faire le last save time" se fait tout seul
tu peux faire quelque chose de perso avec les customproperty aussi

si cela doit se voir dans le nom du fichier et que la réponse a ma question est "oui"
là c'est une autre paire de manches il te faudrait mettre un séparateur suffisamment distinct pour pouvoir supprimer l'ancienne date de modif dans le nom

juste comme ca en passant ;)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard,
J'ai tenté comme ça mais rien ne se passe :
VB:
Sub Renommer_gérard()
Dim chemin$, fso As Object, f As Object, fn$, p%
chemin = ThisWorkbook.Path & "C:\Users\lionel\Desktop\Prospects CaCh envoyes en attente2\" '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 "*xls*" Then
        Workbooks(f.Name).Close False 'si le fichier est ouvert on le ferme
        fn = chemin & f.Name
        p = InStrRev(fn, "\")
        Name fn As Left(fn, p) & Format(f.DateCreated, "yyyy mm dd ") & Mid(fn, p + 1)
    End If
Next
End Sub
J'ai pas du mettre le chemin la où il faut :)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Laurent,
Le titre du fil :
"ajouter date de MODIFICATION devant le nom du fichier"
donc effectivement, c'est renommer les fichiers avec la date de modif devant le nom d'origine :)
lionel,
 

job75

XLDnaute Barbatruc
J'ai tenté comme ça mais rien ne se passe :
VB:
chemin = ThisWorkbook.Path & "C:\Users\lionel\Desktop\Prospects CaCh envoyes en attente2\" 'dossier à adapter
Quelle horreur, tu ne sais pas ce qu'est un chemin d'accès ??? Corrige ça bien vite !!!

Avec le code que j'ai donné tous les fichiers doivent être dans le même dossier.
 

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
 
Ce message a été identifié comme étant une solution!

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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas