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

Renommer des fichiers PDF

R@chid

XLDnaute Barbatruc
Supporter XLD
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

Paritec

XLDnaute Barbatruc
re Job
C'est ton analyse, pas la mienne, mais tu auras raison de toute façon donc sans commentaire !!!
C'est comme les MP pour donner des nouvelles perso, il faut en faire profiter le forum??
Là aussi c'est ton avis, moi je dirais quand on ne sait pas, on ne juge pas et cela sans aucune animosité.
il ne doit être utilisé que par des programmeurs qui savent exactement ce qu'ils font.
Oui il est vrai que je ne sais pas ce que je fais, c'est certainement pour cela que je n'utilise pas on error resume next
bonne soirée
a+
Papou
 

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonsoir Paritec, Bonsoir Joob75, Bonsoir le forum,
merci de vos contributions, c'est moi qui ne sais pas quand est-ce qu'il faut utiliser la On Error Resume Next
Cher Paritec merci pour la nouvelle version ça marche bel et bien.

Cordialement
 

Dranreb

XLDnaute Barbatruc
Bonsoir à tous.
Considérant qu'il vaut mieux après tout enfoncer des portes ouvertes que de trop obstinément fermées, je dirais :
Il faut utiliser On Error Resume Next quand on s’apprête à exécuter une instruction dont on sait qu'elle est susceptible de provoquer une erreur et qu'on ne veut pas de plantage de l'exécution à cause de ça. Cela implique dans l'immense majorité des cas de tester l'objet Err après l'instruction visée et d'orienter la suite du traitement selon le verdict.
C'est cette suite là qu'on peut, je pense, considérer comme la garantie de savoir ce qu'on fait en l'utilisant.
Si on ne l'utilise pas, ben on sait assez souvent ce qu'on fait, mais ça peut être bien compliqué, voire impossible pour certains d'entre eux, de détecter un problème autrement qu'en essayant l'instruction qui provoquera l'erreur.
 
Dernière édition:
C

Compte Supprimé 979

Guest
Bonjour le fil,

Ma petite contribution au cas ou sans "On Error Resume Next"

Code:
Sub Renomme()
  Dim DLig As Long, Lig As Long
  Dim sOldName As String, sNewName As String, sPath As String
  ' Définir le chemin
  sPath = "C:\Users\Rachid\Desktop\Fichiers_PDF\"
  If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
  ' Avec la feuille
  With Sheets("Feuil1")
    ' Dernière ligne de la feuille
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For Lig = 2 To DLig
      ' Vérifier si ancien nom existe
      If .Range("A" & Lig).Value <> "" Then
        sOldName = .Range("A" & Lig) & ".pdf"
      Else
        GoTo SuiteLig
      End If
      ' Vérifier si nouveau nom existe
      If .Range("B" & Lig).Value <> "" Then
        sNewName = .Range("B" & Lig) & ".pdf"
      Else
        GoTo SuiteLig
      End If
      ' Vérifier que le fichier existe
      If Dir(sPath & sOldName) <> "" Then
        ' Tout est OK, renommer le fichier
        Name sPath & sOldName As sPath & sNewName
      End If
     
SuiteLig:
    Next Lig
  End With
End Sub

A+
 
Dernière modification par un modérateur:

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonsoir @ tous,
Salut Dranreb, Salut BrunoM45,
Cher Dranreb, merci pour ces éclaircissements que je n'ai pas du tout compris , un jour je comprends et je te répondrai.
Mon ami BrunoM45, merci pour ce nouveau code, je ne l'ai pas encore testé, je ferai le test et reviendrai vers toi pour te corriger en 2036 incha'allah.
Je vais essayer de tester sur un dossier de 1000 fichiers pour tester la vitesse de l’exécution de chacun de ces codes, même si je suis sûr que le plus lent entre eux sera certainement plus rapide que de le faire manuellement.


Cordialement
 

Dranreb

XLDnaute Barbatruc
ces éclaircissements que je n'ai pas du tout compris
Ben mince, alors ! Je ne vois pas bien comment l'expliquer plus simplement. Qu'est-ce que tu n'as pas compris ?
Je précise: Err est un objet VBA impacté par les erreurs survenant lors de l'exécution. Il est muni de 6 propriétés en lecture seule dont les plus importantes sont Number et Description, et de 2 méthodes: Clear et Raise.
 

Discussions similaires

Réponses
3
Affichages
304
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…