Renommer des fichiers PDF

R@chid

XLDnaute Barbatruc
Bonjour mes chers amis,
après une longue absence je reviens vers vous mais cette fois pour solliciter votre aide à faire une macro pour renommer des fichiers PDF qui existent dans un dossier précis, sur le fichier ci-joint il y a deux colonnes une contenant les anciens noms de fichiers PDF sur l'autre colonne le nouveau nom pour chaque fichier et j'aimerais si possible une macro qui change les noms de ces fichiers PDF qui peuvent être des centaines.

J'espère avoir été clair.

Cordialement
 

Pièces jointes

  • RenommerDesFichiers_PDF.xlsx
    8.5 KB · Affichages: 60

Lone-wolf

XLDnaute Barbatruc
Bonjour R@chid, le Forum :)

Un essai avec ceci

VB:
Option Explicit

Sub Renommer()
Dim chemin As String, fichier As String
Dim Fso As Object, newname As String, i&

    Set Fso = CreateObject("Scripting.FileSystemObject")

    chemin = "C:\Users\Rachid\Desktop\Fichiers_PDF\"
    fichier = Dir(chemin & "*.*")
    i = 1
  
    Do While Len(fichier) > 0
        i = i + 1
        newname = Range("b" & i).Value
        Fso.MoveFile fichier, chemin & newname
        fichier = Dir()
    Loop
End Sub

EDIT: bonjour Paritec :)
 

Paritec

XLDnaute Barbatruc
Re Bonjour Rachid:) lone:) Tous,
dans ta macro Lone tu ne remplaces pas le nom du fichier de la colonne A par la colonne B??
si dans son dossier il a 100 fichiers, et qu'il veut en changer seulement 10, avec ta macro, tu vas changer les 10 premiers trouvés!!
et c'est pas obligatoirement dans l'ordre dans son dossier.
bonne journée
a+
Papou:)
 

Paritec

XLDnaute Barbatruc
Re Bonjour Rachid:) lone:) le forum
Une version V2 qui en plus de renommer, te dira si un fichier n'a pas été traité !!
Dans le cas ou le fichier n'existe pas dans le dossier
a+
Papou:)
 

Pièces jointes

  • Rachid V2.xlsm
    22 KB · Affichages: 43

job75

XLDnaute Barbatruc
Bonjour R@chid, Papou, Lone-wolf,

Heureux de te retrouver cher R@chid.

Name X As Y est très classique :
Code:
Sub Renommer()
Dim chemin$, t, i&
chemin = [G2] & "\" 'ThisWorkbook.Path & "\"
t = [A1].CurrentRegion
On Error Resume Next
For i = 2 To UBound(t)
    Name chemin & t(i, 1) & ".pdf" As chemin & t(i, 2) & ".pdf"
Next
End Sub
Bonne journée.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour job75 :)

@Paritec: Oui tu as raison. Un quack de ma part. :oops:

J'ai refait comme ceci

VB:
Option Explicit

Sub Renommer()
Dim derlig&, i&, chemin$, AncienNom$, NouveauNom$

    derlig = Range("a" & Rows.Count).End(xlUp).Row
    chemin = "C:\Users\Rachid\Desktop\PDF\"
    On Error Resume Next
 
    For i = 2 To derlig
        AncienNom = chemin & Range("a" &  i) & ".pdf"
        NouveauNom = chemin & Range("b" &  i) & ".pdf"
            If  Dir(AncienNom) <> "" Then
                 Name AncienNom As NouveauNom
           End If
    Next i
End Sub
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonjour mes chers amis,
Cher Paritec :
dans un premier temps la macro n'a pas fonctionné correctement, elle bloque au Fichier_09 et les suivants et me dit que les fichiers n'existent pas dans le dossier alors qu'ils y sont, mais en fin de compte je me suis rendu compte que c'est moi le fautif puisque j'ai donné le même nouveau nom Nouveau_Nom@-022 au fichier Fichier_08 et Fichier_09, maintenant tout fonctionne comme il faut, un énorme merci.

Cher Job75 :
Ta macro a bien fonctionné sans faute et puisque le Fichier_08 a bien eu le nouveau nom Nouveau_Nom@-022 elle ne l'a pas donné au Fichier_09 et elle l'a laissé sans nom.

Mon cher Lone-Wolf :
je te remercie pour ta participation et pour ton aide, j'ai pas essayé les tiennes puisque j'ai lu les commentaires de mon ami Paritec, merci de ne pas m'en vouloir.

Merci mes chers amis, vous aussi vous me manquez beaucoup "BEZZZAF" en arabe.


Au plaisir de revenir vers vous pour d'autres questions.


Cordialement
 

R@chid

XLDnaute Barbatruc
Je reviens vers vous :
je n'ai pas anticipé que je n'aurai pas besoin de renommer tous les fichiers mais mon Cher Paritec en a parlé à Lone-Wolf,
En essayant de laisser quelques cellules des nouveaux noms vides pour ne pas renommer les fichiers il s'est avéré que la macro de l'ami Job75 nomme correctement les fichiers, et donne un nom "" au premier fichier à ne pas renommer et laisse les autres tels qu'ils sont puisqu'elle ne donne pas le même nom à plusieurs fichiers. Par contre celle de l'ami Paritec fait comme celle de Job75 mais après le deuxième nom après le vide elle bloque.

Est-ce qu'il y a moyen de ne pas prendre en compte les cellules vides ?

Cordialement
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Bonjour Rachid le forum
Oui bien sur que l'on peut en tenir compte mais pour moi ta demande était très claire, tu voulais renommer une liste précise de fichiers, donc dans ce cas là il n'y avait pas à prévoir de vide !!!
dans quelle colonne tu auras des vides ?? uniquement dans la colonne B ??
Et si il y a vide en colonne B on ne renomme pas c'est bien cela??
Par contre celle de l'ami Paritec fait comme celle de Job75 mais après le deuxième nom après le vide elle bloque.
Normal moi je n'utilise jamais "on error resume next", quand il y a un défaut il faut le savoir.
a+
Papou:)
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re Rachid le forum
voilà pour les cellules vides, si absence de nom de fichier en colonne B on ne renomme pas
( mais soyons bien d'accord que ce n'est plus la demande initiale )
a+
Papou:)
 

Pièces jointes

  • Rachid V3.xlsm
    21.4 KB · Affichages: 52

Discussions similaires

Statistiques des forums

Discussions
311 740
Messages
2 082 049
Membres
101 882
dernier inscrit
XaK_