A voir également:
- Renommer fichier pdf avec excel
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Fichier rar - Guide
- Comment faire un fichier pdf - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Liste déroulante excel - Guide
11 réponses
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
14 juil. 2008 à 16:04
14 juil. 2008 à 16:04
Bonjour,
je penser que c'est réalisable.
Comment tes données sont-elles organisées dans ton fichier Excel ? Y a-t-il une correspondance entre l'ancien et le nouveau nom ? Tous tes .pdf sont-ils dans un même dossier ?
D'ores et déjà, tu peux bouquiner l'aide VBA concernant la fonction Dir et l'instruction Name.
A suivre...
je penser que c'est réalisable.
Comment tes données sont-elles organisées dans ton fichier Excel ? Y a-t-il une correspondance entre l'ancien et le nouveau nom ? Tous tes .pdf sont-ils dans un même dossier ?
D'ores et déjà, tu peux bouquiner l'aide VBA concernant la fonction Dir et l'instruction Name.
A suivre...
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 11:43
15 juil. 2008 à 11:43
Salut,
c'est toi qui me diras si j'ai bien compris.
Dans le code ci-dessous,
- affecte à la variable Chemin le chemin d'accès du répertoire qui contient tes fichiers.
- corrige les bornes des lignes à traiter (2 To 402)
- corrige les colonnes de AncienNom et NouveauNom (Colonnes A et B)
- je pars du principe que l'extension est contenue dans le nom du fichier. Si ce n'est pas le cas, il faudra les rajouter dans Dir et Name.
Il est évident que tu testeras d'abord ce code sur des copies de fichiers.
I.
c'est toi qui me diras si j'ai bien compris.
Dans le code ci-dessous,
- affecte à la variable Chemin le chemin d'accès du répertoire qui contient tes fichiers.
- corrige les bornes des lignes à traiter (2 To 402)
- corrige les colonnes de AncienNom et NouveauNom (Colonnes A et B)
- je pars du principe que l'extension est contenue dans le nom du fichier. Si ce n'est pas le cas, il faudra les rajouter dans Dir et Name.
Sub Ed() Dim Chemin As String, Fichier As String, Ligne As Integer Dim AncienNom As String, NouveauNom As String Chemin = "C:\Dossier1\Dossier2\DossierX\" For Ligne = 2 To 402 AncienNom = Range("A" & Ligne).Value NouveauNom = Range("B" & Ligne).Value Fichier = Dir(Chemin & AncienNom) If Fichier = Empty Then MsgBox "le fichier " & AncienNom & " n'a pas été trouvé" Else Name Fichier As NouveauNom End If Next Ligne End Sub
Il est évident que tu testeras d'abord ce code sur des copies de fichiers.
I.
en fait mon problème est que je n'ai pas l'ancien nom dans mon fichier excel
et que le nouveau nom est une concaténation "chiffre_nouveaunom.pdf"
j'ai essayé ton programme, mais je ne sais pas pourquoi je n'arrive pas a le faire marché
j'ai mis le bon chemin et mis les bon liens dans les colonnes
ton bout de programme serait une alternative mais cela ne me fais pas gagner de temps puis je serais obligé d'importer les apres les autres tous les noms des fichiers
penses tu a une autre solution??
merci
et que le nouveau nom est une concaténation "chiffre_nouveaunom.pdf"
j'ai essayé ton programme, mais je ne sais pas pourquoi je n'arrive pas a le faire marché
j'ai mis le bon chemin et mis les bon liens dans les colonnes
ton bout de programme serait une alternative mais cela ne me fais pas gagner de temps puis je serais obligé d'importer les apres les autres tous les noms des fichiers
penses tu a une autre solution??
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 14:27
15 juil. 2008 à 14:27
Est-ce que l'indicatif du fichier est toujours composé de 4 chiffres ?
Si oui, corrige les lignes suivantes :
Si non, est-ce que l'indicatif du fichier commence toujours le nom du fichier (dès le premier caractère) et est toujours suivi d'un tiret-bas ? Le \ ne fait partie du nom du fichier, si ?
I.
Si oui, corrige les lignes suivantes :
AncienNom = Left(Range("A" & Ligne).Value, 4) NouveauNom = Range("A" & Ligne).Value Fichier = Dir(Chemin & AncienNom & "*")
Si non, est-ce que l'indicatif du fichier commence toujours le nom du fichier (dès le premier caractère) et est toujours suivi d'un tiret-bas ? Le \ ne fait partie du nom du fichier, si ?
I.
le problème est dans le fait que je n'ai pas les ancien nom dans une feuille excel
en fait le nom est de la forme:
code_nom.pdf
le code est un code composé de chiffres et de lettre / j'ai les codes de chaque fichier dans mon tableau excel donc pas de problème pour cela
le tiret bas(_) : pas de problème
enfin le nom entier : pas de problème aussi car je les ai dans mon tableau
puis grace à ces 3 données je veux les concatener afin de renommer le fichier pdf
mais le fichier pdf actuel lui est de la forme
code_nompartiel.pdf
Donc même forme, même code, la seule chose qui change est le nom
voila jespère t'avoir mieux guidé
en fait le nom est de la forme:
code_nom.pdf
le code est un code composé de chiffres et de lettre / j'ai les codes de chaque fichier dans mon tableau excel donc pas de problème pour cela
le tiret bas(_) : pas de problème
enfin le nom entier : pas de problème aussi car je les ai dans mon tableau
puis grace à ces 3 données je veux les concatener afin de renommer le fichier pdf
mais le fichier pdf actuel lui est de la forme
code_nompartiel.pdf
Donc même forme, même code, la seule chose qui change est le nom
voila jespère t'avoir mieux guidé
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 14:59
15 juil. 2008 à 14:59
Ce que j'appelais indicatif, c'est ce que tu apelles code.
Si le code ne change pas (ce qui est la cas, je crois), on peut donc faire la correpondance entre le nom du fichier actuel et son nouveau nom.
As-tu essayé avec les corrections du post 5 ? Ne te laisse pas tromper, j'ai laissé la variable AncienNom, mais j'aurais pu la renommer Code, puisqu'en fait, elle contient le code (les 4 premiers chiffres)
Dans ta liste Excel, as-tu une seule colonne avec le nom complet code_nom.pdf ?
ou bien deux colonnes : code / nouveau nom, qu'il faut ensuite concaténer ?
Pour qu'on parle bien de la même chose, peux-tu copier dans un prochain message quelques exemples de ce que contient exactement ton fichier excel ?
I.
Si le code ne change pas (ce qui est la cas, je crois), on peut donc faire la correpondance entre le nom du fichier actuel et son nouveau nom.
As-tu essayé avec les corrections du post 5 ? Ne te laisse pas tromper, j'ai laissé la variable AncienNom, mais j'aurais pu la renommer Code, puisqu'en fait, elle contient le code (les 4 premiers chiffres)
Dans ta liste Excel, as-tu une seule colonne avec le nom complet code_nom.pdf ?
ou bien deux colonnes : code / nouveau nom, qu'il faut ensuite concaténer ?
Pour qu'on parle bien de la même chose, peux-tu copier dans un prochain message quelques exemples de ce que contient exactement ton fichier excel ?
I.
j'ai en effet 2 colonnes dans mon fichier excel
une colonne qui contient le code
et un autre colonne qui contient le nouveau nom
il me faut donc ensuite concaténer le code, le tiret bas, le nouveau nom et .pdf pour avoir mon nom définitif
le but est que une fois tous les fichier renommer, je pourrait tout concater pour créer un lien hypertexte qui m'ouvrira directement n'importe quel fichier
exemple
Lien CODE NOUVEAU NOM
E:\DONNEES\MES DOCUMENTS\essai\AIGU18273_AIGUILLES.pdf AIGU18273 AIGUILLES
E:\DONNEES\MES DOCUMENTS\essai\CLER645382_CLERMONTAN.pdf CLER645382 CLERMONTAN
E:\DONNEES\MES DOCUMENTS\essai\MONES6531_MONESTIER.pdf MONES6531 MONESTIER
=LIEN_HYPERTEXTE(CONCATENER("E:\DONNEES\MES DOCUMENTS\essai";\;B3;"_";C3;".pdf"))
voila
je me vais essayer ton idée du message 5
merci
une colonne qui contient le code
et un autre colonne qui contient le nouveau nom
il me faut donc ensuite concaténer le code, le tiret bas, le nouveau nom et .pdf pour avoir mon nom définitif
le but est que une fois tous les fichier renommer, je pourrait tout concater pour créer un lien hypertexte qui m'ouvrira directement n'importe quel fichier
exemple
Lien CODE NOUVEAU NOM
E:\DONNEES\MES DOCUMENTS\essai\AIGU18273_AIGUILLES.pdf AIGU18273 AIGUILLES
E:\DONNEES\MES DOCUMENTS\essai\CLER645382_CLERMONTAN.pdf CLER645382 CLERMONTAN
E:\DONNEES\MES DOCUMENTS\essai\MONES6531_MONESTIER.pdf MONES6531 MONESTIER
=LIEN_HYPERTEXTE(CONCATENER("E:\DONNEES\MES DOCUMENTS\essai";\;B3;"_";C3;".pdf"))
voila
je me vais essayer ton idée du message 5
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 16:06
15 juil. 2008 à 16:06
Du coup, la procédure corrigée ci-dessous devrait marcher !
Sub EdBis() Dim Chemin As String, Fichier As String, Ligne As Integer Dim Code As String, NouveauNom As String Chemin = "E:\DONNEES\MES DOCUMENTS\essai\" For Ligne = 3 To 403 Code = Range("B" & Ligne).Value NouveauNom = Code & "_" & Range("C" & Ligne).Value & ".pdf" Fichier = Dir(Chemin & "*" & Code & "*") If Fichier = Empty Then MsgBox "le fichier " & Code & " n'a pas été trouvé" Else Name Fichier As NouveauNom End If Next Ligne End Sub
je pense que tu n'es pas loin de la solution
mais un problème subsiste toute fois dans -->Name Fichier As NouveauNom
la macro me dit à chaque fois qu'elle ne trouve pas le fichier --> ce qui est normal car le fichier se nomme
AIGUI64539_AIGU.pdf
et que à aucun moment dans la macro on dit de remplacer ce fichier pdf par AIGUI64539_AIGUILLES.pdf
je ne sais pas si je suis enfin arriver à texpliquer, en tout cas merci pour ta réactivité
mais un problème subsiste toute fois dans -->Name Fichier As NouveauNom
la macro me dit à chaque fois qu'elle ne trouve pas le fichier --> ce qui est normal car le fichier se nomme
AIGUI64539_AIGU.pdf
et que à aucun moment dans la macro on dit de remplacer ce fichier pdf par AIGUI64539_AIGUILLES.pdf
je ne sais pas si je suis enfin arriver à texpliquer, en tout cas merci pour ta réactivité
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 18:41
15 juil. 2008 à 18:41
Ca doit se jouer sur des détails, mais pour arrêter de tatonner et en finir rapidement, peux-tu me donner :
- ton fichier Excel qui contient la liste des nouveaux noms (tu peux le mettre dans www.cijoint.fr)
- quelques uns des noms actuels des fichiers .pdf
Merci,
I.
- ton fichier Excel qui contient la liste des nouveaux noms (tu peux le mettre dans www.cijoint.fr)
- quelques uns des noms actuels des fichiers .pdf
Merci,
I.
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
16 juil. 2008 à 10:47
16 juil. 2008 à 10:47
Ed,
à partir de ton fichier, j'ai exécuté le code que tu as (Sub EdBis) : chez moi, ça marche !
(il faut juste bien sûr modifier For Ligne = 2 To 21, puisque la ligne 1 contient les en-têtes)
Tu posais la question de l'utilité des étoiles dans
Par exemple, pour la première ligne de ton tableau, ce code revient à
c'est-à-dire rechercher un fichier qui contient AIGU6C0537 dans le répertoire indiqué.
Vérifie bien que la séquence exacte CODE (colonne B) existe bien dans le nom actuel de tes fichiers. Pas de confusion entre AIGU et AIGUI ? Sinon, je ne sais pas quoi ajouter, ça devrait marcher.
I.
à partir de ton fichier, j'ai exécuté le code que tu as (Sub EdBis) : chez moi, ça marche !
(il faut juste bien sûr modifier For Ligne = 2 To 21, puisque la ligne 1 contient les en-têtes)
Tu posais la question de l'utilité des étoiles dans
Fichier = Dir(Chemin & "*" & Code & "*")
Par exemple, pour la première ligne de ton tableau, ce code revient à
Fichier = Dir("E:\DONNEES\MES DOCUMENTS\essai\*AIGU6C0537*")
c'est-à-dire rechercher un fichier qui contient AIGU6C0537 dans le répertoire indiqué.
Vérifie bien que la séquence exacte CODE (colonne B) existe bien dans le nom actuel de tes fichiers. Pas de confusion entre AIGU et AIGUI ? Sinon, je ne sais pas quoi ajouter, ça devrait marcher.
I.
Je comprend pas j'ai toujours le même problème
j'ai bien fait attention à tout le codee est bien le même dans les ancien nom
mais quand je lance la macro, il a un bug au niveau de la ligne "Name Fichier As NouveauNom"
"erreur d'éxécution 53, le fichier est introuvable"
Comment as tu fait pour que çà marche?
tu as créé des fichier pdf et apres tout tes fichiers se sont renommés correctement??
je sais pas du tout d'ou cela peut provenir?? cela ne peut venir que d'un problème de nom???
qu'en pense tu!! join moi ou explique moi mieux comment tu as fonctionné pour que çà marche
merci
j'ai bien fait attention à tout le codee est bien le même dans les ancien nom
mais quand je lance la macro, il a un bug au niveau de la ligne "Name Fichier As NouveauNom"
"erreur d'éxécution 53, le fichier est introuvable"
Comment as tu fait pour que çà marche?
tu as créé des fichier pdf et apres tout tes fichiers se sont renommés correctement??
je sais pas du tout d'ou cela peut provenir?? cela ne peut venir que d'un problème de nom???
qu'en pense tu!! join moi ou explique moi mieux comment tu as fonctionné pour que çà marche
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
16 juil. 2008 à 18:11
16 juil. 2008 à 18:11
Rajoute
après la ligne
si ça ne marche toujours pas, essaie avec ça (re-préciser le chemin d'accès)
I.
ChDir Chemin
après la ligne
Chemin = "E:\DONNEES\MES DOCUMENTS\essai\"
si ça ne marche toujours pas, essaie avec ça (re-préciser le chemin d'accès)
Name Chemin & Fichier As NouveauNom
I.
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
17 juil. 2008 à 10:38
17 juil. 2008 à 10:38
Ouf ! Enfin !
ChDir permet de modifier le répertoire courant.
Dans l'expression Name Fichier As NouveauNom, la variable Fichier ne contient que le nom du fichier, pas son chemin d'accès.
Donc, on allait chercher le fichier Fichier dans un répertoire par défaut qui n'était pas le bon. Du coup, le programme ne le trouvait pas à cet endroit.
Avec ChDir(Chemin), on précise que d'un bout à l'autre du programme, le répertoire par défaut dont on parle (même si on ne le re-précise pas) est Chemin.
Tout est bien qui finit bien.
I.
ChDir permet de modifier le répertoire courant.
Dans l'expression Name Fichier As NouveauNom, la variable Fichier ne contient que le nom du fichier, pas son chemin d'accès.
Donc, on allait chercher le fichier Fichier dans un répertoire par défaut qui n'était pas le bon. Du coup, le programme ne le trouvait pas à cet endroit.
Avec ChDir(Chemin), on précise que d'un bout à l'autre du programme, le répertoire par défaut dont on parle (même si on ne le re-précise pas) est Chemin.
Tout est bien qui finit bien.
I.
bonjour
je pense avoir le même problème.
En effet, j'ai à renommer 1200 fichier pdf!!!
en fait voilà j'ai des documents word qu'il faut convertir en .pdf en les nommant FO000100.pdf, FO000200.pdf, etc..... Ce travail a dèjà été fait les 1200 fichier on été transformé. Par contre mon patron a changé sa façon de les numéroter et il vodrait que le FO000100.pdf deviennet FO100100.pdf; le FO000200.pdf deveinne FO1002.pdf et ainsi de suite. J'ai fait un tableau excel avec l'ancien non et le nouveau nom que l'on doit donner aux fichier pdf mais sans marquer l'extension, donc dan mon tableau excel la colonne B contient l'ancien nom soit FO000100 et dans la colone C le nouveau FO100100.
Je ne sais pas par quoi commencer et ce qui serait le plus rapide. Est ce que j'efface tous les anciens .pdf et je les refait à partir de mes documents .doc ou bien je pars de l'ancien nom et je les renomme grace à une macro???
Le soucis c'est que je ne sais pas faire les macro!!!! Mon patron m'a montré un peu la semaine dernière mais c'est pas encore clair du tout.
Quelqu'un pourrait m'aider???
Merci d'avance.
je pense avoir le même problème.
En effet, j'ai à renommer 1200 fichier pdf!!!
en fait voilà j'ai des documents word qu'il faut convertir en .pdf en les nommant FO000100.pdf, FO000200.pdf, etc..... Ce travail a dèjà été fait les 1200 fichier on été transformé. Par contre mon patron a changé sa façon de les numéroter et il vodrait que le FO000100.pdf deviennet FO100100.pdf; le FO000200.pdf deveinne FO1002.pdf et ainsi de suite. J'ai fait un tableau excel avec l'ancien non et le nouveau nom que l'on doit donner aux fichier pdf mais sans marquer l'extension, donc dan mon tableau excel la colonne B contient l'ancien nom soit FO000100 et dans la colone C le nouveau FO100100.
Je ne sais pas par quoi commencer et ce qui serait le plus rapide. Est ce que j'efface tous les anciens .pdf et je les refait à partir de mes documents .doc ou bien je pars de l'ancien nom et je les renomme grace à une macro???
Le soucis c'est que je ne sais pas faire les macro!!!! Mon patron m'a montré un peu la semaine dernière mais c'est pas encore clair du tout.
Quelqu'un pourrait m'aider???
Merci d'avance.
15 juil. 2008 à 11:03
alors tous mes fichiers pdf sont dans un meme dossier oui
l'ancienne désignation est de la forme "chiffre_nomsimplifier.pdf"
la nouvelle désignation serait de la forme "chiffre_nomentier.pdf"
le chiffre est le même, mais dans l'ancienne désignation, le nom est simplifié
ex : au lieu de marquer document, il y a doc
et tous ces noms entiers sont dans mon fichier excel (tableau)
voila en espérant que tu as bien compris mon problème
merci