Script entre Excel et Explorateur windows
Fermé
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
-
21 avril 2021 à 15:17
bgee2000 Messages postés 90 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 29 novembre 2023 - 23 avril 2021 à 18:50
bgee2000 Messages postés 90 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 29 novembre 2023 - 23 avril 2021 à 18:50
bonjour,
j'ai besoin de créer une marco ou un script qui va me permettre la chose suivante:
Dans un folder, j'ai plusieurs sous folder contenant des PDF dont le nom contiennent un "ID" sépcifique et unique. Exemple : CARON PAINTS - RAPPEL - RELEVE DE COMPTE FOURNISSEUR - DTE20131204 - ID021641 - GED
Dans un excel, j'ai une colonne qui contient l'ID 021641 (que l'on retrouve dans le nom ci dessus)
Les folders sont nombreux et classé par année.
J'ai besoin qu'une macro ou script, aille me chercher chaque PDF contenant l'ID recherché de ma colonne "ID" et isole ce PDF dans un autre répertoire.
Est ce possible?
merci pour votre aide
--
j'ai besoin de créer une marco ou un script qui va me permettre la chose suivante:
Dans un folder, j'ai plusieurs sous folder contenant des PDF dont le nom contiennent un "ID" sépcifique et unique. Exemple : CARON PAINTS - RAPPEL - RELEVE DE COMPTE FOURNISSEUR - DTE20131204 - ID021641 - GED
Dans un excel, j'ai une colonne qui contient l'ID 021641 (que l'on retrouve dans le nom ci dessus)
Les folders sont nombreux et classé par année.
J'ai besoin qu'une macro ou script, aille me chercher chaque PDF contenant l'ID recherché de ma colonne "ID" et isole ce PDF dans un autre répertoire.
Est ce possible?
merci pour votre aide
--
A voir également:
- Script entre Excel et Explorateur windows
- Word et excel gratuit - Guide
- Si et excel - Guide
- Liste déroulante excel - Guide
- Explorateur windows - Guide
- Clé windows 10 gratuit - Guide
6 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 avril 2021 à 16:42
21 avril 2021 à 16:42
Bonjour,
voir ceci:
https://excel.developpez.com/faq/?page=FichiersDir
voir ceci:
https://excel.developpez.com/faq/?page=FichiersDir
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
1
22 avril 2021 à 11:06
22 avril 2021 à 11:06
dans ce cas ci la formule pour copier le fichier est déterminé par son adresse de localisation. Mais je ne la connais pas au préalable. La première partie de la macro qui fct déjà, établi une liste avec le chemin d'accès de type: C:\ etc...
DOnc comment écrire la macro dans ce sens?
--
DOnc comment écrire la macro dans ce sens?
--
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 22 avril 2021 à 12:13
Modifié le 22 avril 2021 à 12:13
Tu te sers de cette macro pour lister tes fichiers. Tu auras le chemin, il te suffit de récupérer le chemin des fichiers que tu veux copier:
https://excel.developpez.com/faq/?page=FichiersDir#ListeFichiersScriptingRuntime
ensuite avec un double clic sur le chemin tu mets ta macro de copie dans la feuille concernée voir ceci
https://forum.excel-pratique.com/viewtopic.php?t=1314
voici un exemple à mettre dans la feuille concernée:
Voilà
https://excel.developpez.com/faq/?page=FichiersDir#ListeFichiersScriptingRuntime
ensuite avec un double clic sur le chemin tu mets ta macro de copie dans la feuille concernée voir ceci
https://forum.excel-pratique.com/viewtopic.php?t=1314
voici un exemple à mettre dans la feuille concernée:
Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim chemin As String 'chemin du fichier à copier If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then chemin = Range("E" & Target.Row) & "\" & Target.Value MsgBox chemin End If End Sub
Voilà
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
1
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
Modifié le 22 avril 2021 à 21:04
Modifié le 22 avril 2021 à 21:04
rien compris :-)
bon, pour le point 1, j'ai récupéré la liste avec une macro. c'est déjà ça...
maintenant j'ai un tri,... encore mieux.
dernière étape, plus compliqué. Ne connaissant pas bien le VBA.. copie cette liste dans un répertoire.
Donc le chemin affiché est un hyperlien, mais avec une chtite formule elle devient:
\\srv-dc\gps\MACRO\AIR PARKING SECURITY - FACTURE FOURNISSEUR - DTE20181101 - ID041425 - GED.PDF
par exemple.
et je veux envoyer tous ces fichiers dans un répertoire C:\Users\BGS\Desktop\Invoices3670
j'ai pas mal chercher mais là je bloque
ça ressemble a ceci mais il faut qu'il puisse aller chercher chaque adresse dans chaque cellule
https://www.youtube.com/watch?v=RZyjhgyrD5Y&ucbcb=1
bon, pour le point 1, j'ai récupéré la liste avec une macro. c'est déjà ça...
maintenant j'ai un tri,... encore mieux.
dernière étape, plus compliqué. Ne connaissant pas bien le VBA.. copie cette liste dans un répertoire.
Donc le chemin affiché est un hyperlien, mais avec une chtite formule elle devient:
\\srv-dc\gps\MACRO\AIR PARKING SECURITY - FACTURE FOURNISSEUR - DTE20181101 - ID041425 - GED.PDF
par exemple.
et je veux envoyer tous ces fichiers dans un répertoire C:\Users\BGS\Desktop\Invoices3670
j'ai pas mal chercher mais là je bloque
ça ressemble a ceci mais il faut qu'il puisse aller chercher chaque adresse dans chaque cellule
https://www.youtube.com/watch?v=RZyjhgyrD5Y&ucbcb=1
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
23 avril 2021 à 11:39
23 avril 2021 à 11:39
Dans cet exemple le chemin complet se trouve dans la colonne A.
On boucle sur tout la colonne A pour extraire le nom du fichier ainsi que son extension, ensuite on copie dans le dossier de destination
voilà c'est tout simple!
@ Le Pivert
On boucle sur tout la colonne A pour extraire le nom du fichier ainsi que son extension, ensuite on copie dans le dossier de destination
Option Explicit Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant, fichier As String Dim destination As String destination = "C:\Users\LePivert\Documents\Nouveau dossier\" ' a adapter toujours finir par \ Set FL1 = Worksheets("Feuil1") 'a adapter NoCol = 1 'lecture de la colonne A'a adapter For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) 'derniére ligne Var = FL1.Cells(NoLig, NoCol) fichier = Dir(Var) 'nom fichier seul FileCopy Var, destination & fichier 'copie fichier Next Set FL1 = Nothing MsgBox "Opération réussie", vbInformation, "Copie fichier" End Sub
voilà c'est tout simple!
@ Le Pivert
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
1
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
Modifié le 23 avril 2021 à 18:53
Modifié le 23 avril 2021 à 18:53
merci beaucoup Pivert! ca maaaarche!!
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
149
23 avril 2021 à 01:48
23 avril 2021 à 01:48
Salut,
J'aime bien le sujet, mais, ce n'est pas clair.
Tu veux isoler le PDF, mais, tu veux le copier ou le couper ?
Tu dis avoir beaucoup de répertoires, triés par date. Ça veut dire quoi beaucoup ? 25 pour un humain c'est beaucoup, 500000 pour VBA c'est du pipi de chat.
J'ai une idée d'algorithme, mais, il faut que tu précises ta demande et ton envie. Comment vas-tu sélectionner l'ID ? En cliquant manuellement à la souris ? En parcourant le tableau après avoir écrit l'ID dans un champs de recherche ? Donne un max de détails car il y a plusieurs façons de faire. Si la méthode que j'utilise ne te convient pas, ce sera une perte de temps.
J'aime bien le sujet, mais, ce n'est pas clair.
Tu veux isoler le PDF, mais, tu veux le copier ou le couper ?
Tu dis avoir beaucoup de répertoires, triés par date. Ça veut dire quoi beaucoup ? 25 pour un humain c'est beaucoup, 500000 pour VBA c'est du pipi de chat.
J'ai une idée d'algorithme, mais, il faut que tu précises ta demande et ton envie. Comment vas-tu sélectionner l'ID ? En cliquant manuellement à la souris ? En parcourant le tableau après avoir écrit l'ID dans un champs de recherche ? Donne un max de détails car il y a plusieurs façons de faire. Si la méthode que j'utilise ne te convient pas, ce sera une perte de temps.
Pour les répertoire c’est réglé , j’ai manuellement copier les 9000 pdf ... dans un seul.
Je veux les copier dans un autre répertoire à partir d’une liste oui.
J’ai pu extraire l’ID et ensuite par un VLookup isolé les factures en questions. J’ai leur hypermien et même leur chemin d’accès complet.
Celui ci est le plus proche sauf pour la sélection du nom du fichier. Je ne vois pas comment l’adapter.
https://youtu.be/u0jVmFfzyHQ
Je veux les copier dans un autre répertoire à partir d’une liste oui.
J’ai pu extraire l’ID et ensuite par un VLookup isolé les factures en questions. J’ai leur hypermien et même leur chemin d’accès complet.
Celui ci est le plus proche sauf pour la sélection du nom du fichier. Je ne vois pas comment l’adapter.
https://youtu.be/u0jVmFfzyHQ
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
1
23 avril 2021 à 10:21
23 avril 2021 à 10:21
j'ai trouvé ceci. a partir d'une liste de nom de fichier, ce qui est maintenant mon cas, il copie le fichier des cellules 2 à 7 (vidéo https://www.youtube.com/watch?v=u0jVmFfzyHQ&feature=youtu.be )
j'ai remplacé jpg par PDF mais ca fct pas! ...
https://www.youtube.com/watch?v=u0jVmFfzyHQ&feature=youtu.be
Sub CopyFiles()
Dim m As Variant
Dim copier
Dim FileName As String
Dim FileType As String
'SourceFolder = "C:\Users\BGS\Desktop\Source\"
'Destination = "C:\Users\BGS\Desktop\Destination\"
Set copier = CreateObject("Scripting.FileSystemObject")
FileType = ".pdf"
For m = 2 To 5
FileName = Cells(m, 1).Value
copier.CopyFile "C:\Users\BGS\Desktop\Source\" & FileName & FileType, "C:\Users\BGS\Desktop\Destination\"
Next
End Sub
--
j'ai remplacé jpg par PDF mais ca fct pas! ...
https://www.youtube.com/watch?v=u0jVmFfzyHQ&feature=youtu.be
Sub CopyFiles()
Dim m As Variant
Dim copier
Dim FileName As String
Dim FileType As String
'SourceFolder = "C:\Users\BGS\Desktop\Source\"
'Destination = "C:\Users\BGS\Desktop\Destination\"
Set copier = CreateObject("Scripting.FileSystemObject")
FileType = ".pdf"
For m = 2 To 5
FileName = Cells(m, 1).Value
copier.CopyFile "C:\Users\BGS\Desktop\Source\" & FileName & FileType, "C:\Users\BGS\Desktop\Destination\"
Next
End Sub
--
bgee2000
Messages postés
90
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
29 novembre 2023
1
23 avril 2021 à 11:34
23 avril 2021 à 11:34
cette macro fct! mais je n'ai qu'un seul fichier qui se copie, le premier. puis j'ai un message d'erreur " impossible d'executer le code en mode arrêté"
et il met cette ligne ci en jaune:
copier.CopyFile "C:\Users\BGS\Desktop\Source\" & FileName & FileType, "C:\Users\BGS\Desktop
--
et il met cette ligne ci en jaune:
copier.CopyFile "C:\Users\BGS\Desktop\Source\" & FileName & FileType, "C:\Users\BGS\Desktop
--
21 avril 2021 à 17:19