Nouvel enregistrement à partir du nom du fichier

  • Initiateur de la discussion Initiateur de la discussion topo
  • Date de début Date de début

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 !

topo

XLDnaute Junior
Bonjour,

je retraite des fichiers pour le boulot avec différentes macros. Une fois traités, je voudrais qu'ils s'enregistrent automatiquement sur le réseau de la boite dans un dossier particulier avec un nom différent :

par exemple je suis sur un fichier C:\...\Mes Documents\31-03-2008_patata.xls,
je lance ma macro et je veux qu'il s'enregistre

X:\dossier\sous-dossier\30-06-2008_patata.xls

sachant que je veux juste changer 31-03-2008 par 30-06-2008 (les dates sont fixes)

merci d'avance
 
Dernière édition:
Re : Nouvel enregistrement à partir du nom du fichier

Bonjour

Voilà un code pour modifier le nom des fichiers comme demandé

il faut copier les fichiers dans un répertoire

mettre le chemin dans le code

attention c'est irréversible après lancement les fichiers sont modifiés

Code:
Sub test_renommer_fichiers_par_excel()
    Dim fic()      ' liste des fichiers à l'aide du File Object System (FSO)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Chemin = "I:\Ajeter" ' [COLOR="red"]chemin à modifier[/COLOR]
    Set folder = fso.GetFolder(Chemin)
    Set collfic = folder.Files
    tempname = "xxxxx.xxx"
    nfic = collfic.Count
    ReDim fic(nfic + 1)
    n = 0      ' tableau des fichiers du répertoire "Chemin"
    For Each curfic In collfic
        n = n + 1
        fic(n) = curfic.Name
    Next      '   ajout d'un \ en fin de Chemin
    If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\"
    z = 0
    For i = 1 To nfic
        oldname = fic(i)
        Set curfic = fso.GetFile(Chemin & oldname)
        lowname = LCase(oldname)
        ' ----- actions sur le nouveau nom de fichier
        x = lowname
        a = Split(x, "_")
        n = Len(a(UBound(a)))
        newname = Right(oldname, Len(oldname) - (Len(oldname) - n))
 '       MsgBox "30-06-2008_" & newname
        newname = "30-06-2008_" & newname ' [COLOR="Red"]mettre la date voulue[/COLOR]
            ' renommer le fichier avec newname si besoin 
                If newname <> lowname Then
                    z = z + 1
                    newfic = Chemin & newname
                    If fso.FileExists(newfic) Then
                        fso.DeleteFile newfic, True
                    End If
                    curfic.Name = tempname
                    curfic.Name = newname
                End If
    Next
        MsgBox z & " fichiers renommés", vbOKOnly, "Renommage de fichiers dans " & CurDir
End Sub
cdlt

RGI
 
Dernière édition:
- 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

Retour