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
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
--
A voir également:

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
1
bgee2000 Messages postés 90 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 29 novembre 2023 1
21 avril 2021 à 17:19
génial, merci!!
0
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
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?

--
0
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
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:

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à
0
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
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
0
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
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

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
0
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
merci beaucoup Pivert! ca maaaarche!!
0
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
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.
0
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
0

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
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

--
0
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
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
--
0