IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro de recherche et copie de fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut Macro de recherche et copie de fichier
    Bonjour,

    -J’ai un tableau excel ou la colonne « IS » contient un numéro.
    -Un Dossier ("C:\depart" par exemple) dans lequel il y a des sous-dossiers contenant des fichiers nommé xxxxxxxx-fiche.pdf (xxxxxx étant le numéro de ma colonne « IS »).

    Je voudrais une macro qui prend les numéros de la colonne « IS » puis recherche les fichiers xxxxxx-fiche.pdf correspondant pour enfin les copier dans un autre dossier ("C:\arriver" par exemple).

    Si je ne suis pas clair n’hésitez pas à poser des questions.

    Merci.

    PS: cette discussion est très proche mais je n'arrive pas a modifier le code.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Regarde ce poste je pense que tu auras plus facile à l'adapter.
    A+

  3. #3
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    http://www.info-3000.com/vbvba/recherchefichier.php
    quasiment la même chose avec plus d'explication

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Merci de vos réponses je regarde ça et je reviens si j’ai du mal

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je pense n'être pas loin de la solution mais je bloque sur la copie.

    J'ai concaténer dans la colonne JG le numéro et "-fiche.pdf", j'ai donc le nom complet du fichier dans cette colonne.

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    LireRepertoir2()
    'lire les fichiers d'un répertoir
    Dim fs, F, f1, S, sf
    Dim Ext As String, Chemin As String
    Dim i As Integer
    Dim x As String
        Chemin = "\\machin\truc\bidule chose" 'adapter au répertoir où sont situés les fichiers.
        Ext = "pdf"
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFolder(Chemin)
        Set sf = F.Files
        For Each f1 In sf
            If Right(f1.Name, 3) = Ext Then 'pour être certain que c'est un bon fichier
                'ici tester le nom
                 For i = 1 To 1700
                    If f1.Name = Cells(i, 240) Then
                 'et en faire ce que l'ont veux
                     FileCopy ( Chemin & "\" & f1.name , "C:\Documents and Settings\moi\Mes documents\test2" )
                 End If
            End If
        Next
    End Sub
    Merci de votre aide.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Donne un exemple "réel" et complet du nom du fichier.

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Bonjour LeForestier,

    voici les exemples de noms :
    1641801-fiche.pdf
    3622401-fiche.pdf
    517801-fiche.pdf

    Les noms sont dans la colonne JG, je veux les rechercher dans le dossier et les sous-dossiers pour les coller dans un autre dossier.(Il y a 1600 et quelque pdf à copier ).

    j'espère être clair

    Merci.

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    met un point d'arrèt sur Filecopy, ou si tu ne sais pas met Stop juste au dessus pour voir si le nom est trouver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                   If f1.Name = Cells(i, 240) Then
                 'et en faire ce que l'ont veux
                  Stop
                     FileCopy ( Chemin & "\" & f1.name , "C:\Documents and Settings\moi\Mes documents\test2" )
                 End If
    Comme ça tu verras déjà si le nom est trouver

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    La macro ne compile pas car il y a une erreur de syntaxe sur cette ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     FileCopy ( Chemin & "\" & f1.name , "C:\Documents and Settings\moi\Mes documents\test2" )
    L'erreur apparait avec ou sans le stop, désolé j'aurais du le dire avant.

    Merci de ton aide.

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    faut pas de parenthèse
    tu dis

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    bonjour LeForestier,

    j'avais oublier un Next
    La macro marche mais ne trouve rien
    Elle ne passe pas le texte de l'extension pdf.
    Je pense qu'elle ne cherche pas dans les sous-dossiers.
    Je retourne en croisade contre le VBA .

    Merci de ton aide

  12. #12
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            If Right(f1.Name, 3) = Ext Then 'pour être certain que c'est un bon fichier
                'ici tester le nom
                 For i = 1 To 1700
                       If f1.Name = Cells(i, 240) Then
                 'et en faire ce que l'ont veux
                            FileCopy ( Chemin & "\" & f1.name , "C:\Documents and Settings\moi\Mes documents\test2" )
                  End If
            End If
    Il te manque un next i entre les deux end if
    regarde ton indentation tu a un if sans end if aligné mais le end if sous le for
    (ce n'est pas du au parenthèse, c'est juste que maintenant que tu na plus d'erreur sur les paracentèses il te montre la suivante )
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Bonjour Krovax,

    J'ai poster trop tot.

    j'ai trouver l'erreur mais le temps de corriger mon poste tu à répondu plus vite que moi.

    Merci pour ton aide très rapide

  14. #14
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Citation Envoyé par vibos Voir le message
    bonjour LeForestier,

    Je pense qu'elle ne cherche pas dans les sous-dossiers.
    Je retourne en croisade contre le VBA .

    Merci de ton aide
    Attention, avec la macros tel qu'elle est ça ne va de toutes façon pas chercher dans les sous-dossiers, si besoin tu dit, faudra modifier le code.
    A+

  15. #15
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Rebonjour,

    Je bloque encore
    N'arrivant pas à utiliser ShowSubfolder, j'ai déjà voulu tester le code existant.
    Mais il ne trouve pas le chemin d'accès.
    Que je mette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy Chemin & "\" & f1.Name, "C:\Documents and Settings\moi\Mes documents\test2\"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy Chemin & f1.Name, "C:\Documents and Settings\moi\Mes documents\test2\"
    une idée ?

    Je remet le code complet car il y a des petits changements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub LireRepertoir2()
    'lire les fichiers d'un répertoir
    Dim fs, F, f1, S, sf
    Dim Ext As String, Chemin As String
    Dim i As Integer
    Dim x As String
        Chemin = "\\blablabla\fiche\" 'adapter au répertoir où sont situés les fichiers.
        Ext = "pdf"
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFolder(Chemin)
        Set sf = F.Files
        For Each f1 In sf
            If Right(f1.Name, 3) = Ext Then 'pour être certain que c'est un bon fichier
                'ici tester le nom
                 'For i = 1 To 1700
                    If f1.Name = "8816501-fiche.pdf" Then
    'Cells(i, 240) Then
                 'et en faire ce que l'ont veux
     
                 ' Sous Microsoft Windows:
                     '   OldName = Chemin & "\" & f1.Name
                      '  NewName = "C:\Documents and Settings\moi\Mes documents\test2\"
                    ' Déplace et renomme le fichier.
                       ' Name OldName As NewName
                    FileCopy Chemin & "\" & f1.Name, "C:\Documents and Settings\moi\Mes documents\test2\"
     
                    End If
               ' Next
            End If
        Next
    End Sub
    Merci encore.

Discussions similaires

  1. [XL-2013] Aide pour macro de recherche et copie de lignes entière en utilisant un dictionnaire
    Par magicsismic dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/04/2015, 13h43
  2. Macro pour rechercher un fichier xls et importer des données
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2011, 16h03
  3. recherche et copie de fichier
    Par driver dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/08/2008, 08h55
  4. Recherche et copie de texte impossible dans un fichier pdf
    Par mitch007 dans le forum Mise en forme
    Réponses: 0
    Dernier message: 13/04/2008, 12h27
  5. [VBA-E]macro fichier protégé xsl copie de fichiers partagés
    Par matou_aouh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/04/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo