Gestionnaire Excel de fichiers Pdf
Hello, Hello, 8)
Yʕ •̥͡•ʔ/ Je propose une nouvelle application Excel qui me sert de gestionnaire de fichiers Pdf.
> Renommer les fichiers
> Déplacer les fichiers
> Envoyer par mail (Outlook) les fichiers
> Imprimer les fichiers
> Supprimer les fichiers
> Ouvrir les fichiers par lien hypertexte
*Pour activer la fonction mailing, cocher la référence Outlook dans le développeur VBA.
Au besoin, ce post parle de la méthode : https://forum.excel-pratique.com/cours-astuces/excel-outlook-envoi-mail-t29003.html
*Possibilité d'importer les adresses mails de vos contacts Outlook dans la version 2.2 de ce fichier
* Gestionnaire Pdf : Pour modifier la taille de la liste fichier au-delà des 200 lignes et conserver le format des cellules boutons j'ai fait un petit Mod-Op d'explication en PJ
* Gestionnaire Pdf : Mod'Op temporaire, comment supprimer des lignes à la liste fichiers
* Gestionnaire Pdf : Mod'Op pour changer d'extension .pdf->.doc à la page 2
* Gestionnaire Pdf : Evolution v.3.0 permet de supprimer plus facilement des lignes et ajoute automatiquement des lignes en fonction de l'appel de fichiers
* Version tous types d'extension ici : https://www.excel-pratique.com/fr/telechargements/outils-de-gestion/gestionnaire-universel-de-fichiers-no358.php
________> Possibilité de supprimer une ligne du tableau de manière spécifique
________> Possibilité de lever la protection de l'onglet pour supprimer autant de lignes que nécessaire
Découverte de bug, version 3.00 du gestionnaire :
En attendant la version 3.01, il faut corriger le bug manuellement.
Le pb c'est que la variable source du fichier reste figer sur le 1er dossier du 1er fichier, pas de soucis si on ne gère pas des fichiers de plusieurs dossiers, mais dans le cas de plusieurs dossier le renommage ne marche pas, car la variable source n'est pas dans la boucle Loop.
Il faudra corriger en manuel dans l'éditeur cette partie du code (à partir de la ligne 745-747) :
'IV.a. Modif du nom fichier à celui indiqué dans la colonne nom fichier amende F
destin = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("D" & numligne).Text & Application.PathSeparator
Fichier = Dir(source & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("B" & numligne).Text, vbNormal)
'IV.a. Modif du nom fichier à celui indiqué dans la colonne nom fichier amende F
destin = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("D" & numligne).Text & Application.PathSeparator
source = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator 'def chemin source du fichier avec le nom du fichier en cours
Fichier = Dir(source & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("B" & numligne).Text, vbNormal)
Salut Waard et merci pour ce partage
Joli petit utilitaire
Si tu ne saisi pas de nom de fichier en colonne D et que tu double clique sur la cellule E, le fichier est renommé malgré tout et ne se retrouve donc plus qu'avec son extension
Un petit test facile à faire
A+
Hello BrunoM45,
Merci pour le bug
Je ré-up l'appli. demain avec la correction et des msgbox d'info. dédiés à cette ano.
Encore merci et a+
Hello Hello, 8)
Pour info géné.
Ajout d'un module indépendant, au gestionnaire de pdf
J'ai créé un module indépendant à mon gestionnaire de Pdf, permettant de visualiser des Pdf à l'intérieur d'Excel à l'aide de l'activex du lecteur PDF-XChange Viewer (existant en version gratuite).
8) Ça donne ça :
Bonjour.
Comment fait-on pour que les lignes >200 soient formatées comme les précédentes ?
Votre macro télécharge bien les fichiers et les affiche bien, les macros semblent opérationnelles puisque le double clic fonctionne mais pas le format des cellules.
Merci
Avis : Mod'Op pour augmenter la taille de la liste du gestionnaire de fichiers Pdf et formater les boutons
De Castey a écrit :Comment fait-on pour que les lignes >200 soient formatées comme les précédentes ?
Votre macro télécharge bien les fichiers et les affiche bien, les macros semblent opérationnelles puisque le double clic fonctionne mais pas le format des cellules.
Bonjour,
Bonne question, merci.
Pour ce qui est du code VBA, il n'y a pas de changements, celui-ci parcourt les colonnes de chaque bouton d'action et pour ce qui est des boutons de gestion masse, le code parcourt le tableau en mode Tant Que (+ des variables de sécurité suivant les actions).
Bonne utilisation à tout le Monde.
Cela marche parfaitement.
Merci beaucoup
Bonjour.
Merci beaucoup pour votre gestionnaire qui m'est vraiment très utile.
Deux questions à son sujet :
1 - Les fonctions "SUPPRIMER" sont très 'violentes'. Je m'en suis aperçu trop tard (elles suppriment les fichiers du disque dur et non pas du fichier ! Heureusement j'avais fait une sauvegarde avant d'utiliser votre programme). Que doit-on faire pour effacer un fichier dans le programme sans l'effacer du DD ? La réinitialisation le retrouvera lors de l'importation suivante d’où l'obligation d'effacer ligne par ligne. la réinitialisation suivante obligera à recommencer , le(s) fichier(s) réapparaîtra(ont).
2 - Comment fait-on pour ajouter un nouveau fichier ? Uniquement par la réinitialisation et l'import ?
Cette question est dépendante de la première puisque si la réinitialisation est la seule solution, la 2nde devient sans objet.
Question subsidiaire : Existe-t-il un programme semblable qui permettrait d'avoir la liste tous les courriers WORD qui sont éparpillés dans plusieurs répertoires ?
Remerciements
Avis : FAQ & Comment supprimer des lignes de la liste fichier du gestionnaire Pdf
Hello, hello,
Pour réponse:
De Castey a écrit :1 - Les fonctions "SUPPRIMER" sont très 'violentes'. Je m'en suis aperçu trop tard (elles suppriment les fichiers du disque dur et non pas du fichier ! Heureusement j'avais fait une sauvegarde avant d'utiliser votre programme). Que doit-on faire pour effacer un fichier dans le programme sans l'effacer du DD ? La réinitialisation le retrouvera lors de l'importation suivante d’où l'obligation d'effacer ligne par ligne. la réinitialisation suivante obligera à recommencer , le(s) fichier(s) réapparaîtra(ont).
Le truc (et le fait que l'orga du fichier ait été modifié depuis sa conception), c'est que comme les boutons lignes sont protégés, les lignes de la liste aussi et leur suppression n'est pas possible, mais je changerai ça dans la future évolution.
De Castey a écrit :2 - Comment fait-on pour ajouter un nouveau fichier ? Uniquement par la réinitialisation et l'import ?
Cette question est dépendante de la première puisque si la réinitialisation est la seule solution, la 2nde devient sans objet.
De Castey a écrit :Question subsidiaire : Existe-t-il un programme semblable qui permettrait d'avoir la liste tous les courriers WORD qui sont éparpillés dans plusieurs répertoires ?
- Une macro de Nardo qui liste des fichiers d'un répertoire avec possibilité de choisir l'extension fichier et modification pour supprimer des fichiers. En PJ.
- Une macro pour renommer en masse n'importe quel fichier de jacques Boisgontier, dispo sur ce lien :
L> Son site est d'ailleurs le plus fournis et sert de référence, il y'a aussi des codes pour récupérer l'arborescence d'un répertoire.
Sinon il y'a aussi info-3000 qui explique bien pas mal de fonctions :
http://www.info-3000.com/vbvba/fichiers/
Voilà
* Edit: Après test, en faisant un simple rechercher/remplacer .pdf -> .doc dans le code du gestionnaire, les fonctions Importer / Renommer / Déplacer / Supprimer ont l'air de marcher convenablement avec les fichiers word.
Merci pour votre réponse.
Je me sers beaucoup d'Excel mais je n'ai jamais pris le temps de faire des macros. Aussi, je me suis permis d'aller voir comment les vôtres étaient faites et, sans en comprendre toutes les fonctions, j'ai 'fouiné' et j'ai très vite compris qu'en remplaçant .PDF par .DOCX l'application devait fonctionner (ou à peu près).
Ce qui s'est révélé exact à quelques exceptions près :
Impossible de renommer la ligne 1 de l'onglet gestionnaire. J'ai beau changer GESTIONNAIRE DE FICHIERS.PDF en GESTIONNAIRE DE FICHIERS.DOCX, le 1er libellé revient invariablement.
De même, la routine APPEL_LISTE_FICHIERS_PDF ne peut être renommée. Dans le cas contraire, la macro plante.
Dernier point constaté : Le nombre de pages (colonne C) reste invariablement à 0 (la macro met la couleur de la cellule en rose --> il y a donc une erreur détectée). Je ne sais s'il s'agit d'une erreur due à WORD qui ne numérote pas comme la macro pourrait le détecter ou s'il s'agit d'une variable non modifiée lors de mes modifications.
Merci encore pour votre travail et vos réponses.
Avis : Comment modifier l'extension fichier traité
Hello,
De Castey a écrit :Aussi, je me suis permis d'aller voir comment les vôtres étaient faites et, sans en comprendre toutes les fonctions, j'ai 'fouiné' et j'ai très vite compris qu'en remplaçant .PDF par .DOCX l'application devait fonctionner (ou à peu près).
Ce qui s'est révélé exact à quelques exceptions près :
1. Changer l"extension fichier
Ce qui en même temps modifie la mention pdf en doc dans les fenêtres de dialogue et message, c'est sommaire et expéditif mais semble ok pour un fonctionnement had'hoc.
De Castey a écrit :Impossible de renommer la ligne 1 de l'onglet gestionnaire. J'ai beau changer GESTIONNAIRE DE FICHIERS.PDF en GESTIONNAIRE DE FICHIERS.DOCX, le 1er libellé revient invariablement
2. Changer l'affichage
[/b] (rappuyer sur le boutons pour réactiver les macros
De Castey a écrit :De même, la routine APPEL_LISTE_FICHIERS_PDF ne peut être renommée. Dans le cas contraire, la macro plante
D'où l'utilité de faire un rechercher/remplacer tout, car ce bug ne veut dire qu'une chose, le nom de la macro seule à été modifiée, par contre dans toutes les autres macros qui s'y référent, non.
De manière générale, il ne faut pas modifier les noms des macros sans vérifier que ces noms sont repris ailleurs en VBA.
De Castey a écrit :Dernier point constaté : Le nombre de pages (colonne C) reste invariablement à 0 (la macro met la couleur de la cellule en rose --> il y a donc une erreur détectée). Je ne sais s'il s'agit d'une erreur due à WORD qui ne numérote pas comme la macro pourrait le détecter ou s'il s'agit d'une variable non modifiée lors de mes modifications.
Avis de nouvelle version 3.0
Hello, Hello,
8) Avis d'évolution de mon gestionnaire de Pdf à la version 3.0, en cours de Up.
Dispo. à la même adresse.
________> Possibilité de supprimer une ligne du tableau de manière spécifique
________> Possibilité de lever la protection de l'onglet pour supprimer autant de lignes que nécessaire
Voilà, bon futurs tests
Bonjour,
Tous d'abord merci pour votre fichier trés bien conçut en revanche je souhaiterais m'en servir pour d'autres type de fichier, j'ai deja vu votre commentaire plus haut effectivement ca fonctionne mais pour un type de fichier or je souhaiterais ouvrir plus type de fichier (pdf, word, excel...).
Penser vous que cela soit possible.
Merci d'avance.
Hello fx1013,
Voici une version alpha du gestionnaire gérant tous types de fichiers.
Découverte de bug, version 3.00 du gestionnaire :
En attendant la version 3.01, il faut corriger le bug manuellement.
Le pb c'est que la variable source du fichier reste figer sur le 1er dossier du 1er fichier, pas de soucis si on ne gère pas des fichiers de plusieurs dossiers, mais dans le cas de plusieurs dossier le renommage ne marche pas, car la variable source n'est pas dans la boucle Loop.
Il faudra corriger en manuel dans l'éditeur cette partie du code (à partir de la ligne 745-747) :
'IV.a. Modif du nom fichier à celui indiqué dans la colonne nom fichier amende F
destin = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("D" & numligne).Text & Application.PathSeparator
Fichier = Dir(source & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("B" & numligne).Text, vbNormal)
'IV.a. Modif du nom fichier à celui indiqué dans la colonne nom fichier amende F
destin = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("D" & numligne).Text & Application.PathSeparator
source = ThisWorkbook.ActiveSheet.Range("G" & numligne).Text & Application.PathSeparator 'def chemin source du fichier avec le nom du fichier en cours
Fichier = Dir(source & Application.PathSeparator & ThisWorkbook.ActiveSheet.Range("B" & numligne).Text, vbNormal)
Bonjour waard et merci infiniment pour ton gestionnaire qui m'a déjà fait gagner un temps précieux par le passé, ne maîtrisant pas (ou peu) VBA.
J’ai toutefois une question s’agissant de l’importation des fichiers au sein du gestionnaire.
Au sein d'un autre tableau Excel, je dispose en effet d’une multitude de liens hypertextes renvoyant vers des fichiers PDF particuliers dans des dossiers/sous dossiers différents. Est-il par conséquent possible que j’importe ces liens hypertextes directement en colonne B de ton tableur ?
Si oui, peut tu m’expliquer le process à suivre.
J’ai en effet tenté par différents moyens (en créant l’hyperlien moi-même dans chaque ligne de la colonne B, en renseignant le chemin vers le fichier lui-même), mais je ne parviens pas au même résultat que lorsque l’import est effectué grâce à ton bouton « Importer PDF dans liste ».
Merci beaucoup pour ton aide !
Hello Judpom
Oui c'est possible, mais il faut formater tes données pour se conformer au fonctionnement du fichier :
> En col B du Gestionnaire, il faut que ce qui apparaisse dans la cellule soit le nom du fichier (après il peut y avoir un lien hypertexte, il est utilisé uniquement pour l'ouverture du fichier en masse ou par clic)
> En col G du Gestionnaire, il faut qu'il y'ait uniquement le chemin du fichier sans le nom du fichier, exemple: A:\WORLD\New\
Les fonctions dans le gestionnaire ensuite, fusionne les valeurs en Col G et B pour récupérer le chemin complet A:\WORLD\New\12.pdf
S'il manque un \ à la fin du chemin ou que dans le nom du fichier tu remet le chemin, ça bug, car Excel ne retrouve rien.
Je ne sais pas à quoi ressemble tes lien, de ce que je crois avoir compris de ce à quoi ça pouvait ressembler, j'ai fait ci-dessous un petit outil, de conversion de données pour que tu puisse y recoller dans le Gestionnaire (l'outil va jusqu'à la ligne 65000 pour info).
> Il faut mettre en Col A de l'outil, tes liens hypertexte complet, l'outil va extraire le lien et formater en Col B / C / D les liens pour que tu puisse les recoller correctement dans le gestionnaire en col B et G.