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 :

probleme de chemin avec Application.FileSearch


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut probleme de chemin avec Application.FileSearch
    Bonjour,

    J'utilise depuis plusieurs mois une macro qui me sert à modifier une cinquantaine de fichiers identiques(modification de format, ajout de colonne....) qui est la suivante :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Sub chercheFichier_modif_fichierV5()
    Const chemin = "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro2"
    Dim Nomchercher As String
    Dim oFS As Variant
    Dim Nomfichier, industriel, Fichier_ind As String
    Dim I As Integer
    Dim plage1, plage2, plage3, plage4 As Range
    Dim cible As Workbook
    Dim cell As Range
    Dim nazaire As String
     
     
     
     
     
     
        'Set plage1 = Worksheets("récap région").Range("M410:AO422")
        Set plage2 = Worksheets("récap région").Range("AW399")
        'Set plage3 = Worksheets("récap région").Range("AA371")
        'Set plage4 = Worksheets("récap région").Range("AP371")
     
    Set oFS = Application.FileSearch
     
    With oFS
        .LookIn = chemin
        .FileType = msoFileTypeExcelWorkbooks
        If .Execute > 0 Then
     
        For I = 1 To .FoundFiles.Count
        Nomfichier = .FoundFiles(I)
        'ouvre le fichier cible après l'avoir identifié
        Set cible = Workbooks.Open(Nomfichier)
        'retire la protection de l'onglet récap
        cible.Worksheets("récap région").Unprotect Password:="nazaire"
     
        'copie les plages du fichier source dans le fichier cible aux endroits désignés
          'plage1.Copy cible.Worksheets("récap région").Range("M410:AO422")
          plage2.Copy cible.Worksheets("récap région").Range("AW399")
          'plage3.Copy cible.Worksheets("récap région").Range("AA371")
          'plage4.Copy cible.Worksheets("récap région").Range("AP371")
     
     
        cible.Save
        cible.Close
     
        'poursuit la procédure pour les fichiers suivants du répertoire cible
        Next I
        Else
        MsgBox "Aucun fichier trouvé"
        End If
        End With
        MsgBox "fin de recherche"
     
    End Sub
    Ce code marche très bien. La macro est dans un fichier (this workbook) dans un répertoire de mon disque D.
    Les fichiers à modifier sont dans un répertoire sur un serveur accessible de mon pc par le réseau interne de l'entreprise.

    Je souhaite utiliser cette macro pour le même usage mais pour des fichiers qui se trouvent sur un autre répertoire (D:\essai macro).
    J'ai donc modifié le chemin dans le code :
    "D:\essai macro" à la place de
    "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro2"
    Mais ça ne marche pas le code va jusqu'à

    puis va directement à next et affiche "aucun fichier" alors qu'il y a bien des fichiers dans le répertoire. J'ai bien vérifié la syntaxe du chemin, je l'ai copié à partir de la barre dans l'explorateur. Rien n'y fait ça bloque toujours au même endroit.
    J'ai modifié le chemin et la place des fichiers toujours sur le répertoire T, là ça fonctionne où que ce soit sur ce répertoire et pas ailleurs.
    Pourquoi ??

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut
    Les fichiers dans ton répertoire sont bien du bon type ? (msoFileTypeExcelWorkbooks).

    Dans l'aide ils font référence à NewSearch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Application.FileSearch     
    .NewSearch     
    .LookIn = "C:\My Documents"
    Peut être fais tu des essais successifs et que certain paramètres sont conservés (sans conviction)

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonsoir Qwazerty,

    Malheureusement l'ajout de Newsearch ne change rien.

    Jai testé une autre manière de rechercher les fichiers :

    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
    Sub cherchefichier()
     
    Const Chemin = "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro"
    Dim Nomchercher As String
     
    Dim oFs As Variant
    Dim Nomfichier As String
    Dim i As Integer
    Set oFs = Application.FileSearch
     
    Nomchercher = "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro"
     
    With oFs
    .LookIn = Chemin
    .FileType = msoFileTypeExcelWorkbooks
    If .Execute > 0 Then
    MsgBox "il y a " & .FoundFiles.Count & " fichier(s) de trouvé"
    Else
    MsgBox "aucun fichier"
    End If
    End With
     
     
     End Sub
    Même problème, la macro fonctionne sur le lecteur réseau T mais ni sur C ni D ?? C'est étonnant quand même !
    Est ce que quelqu'un peut vérifier ce code sur son PC, ou me donner une explication.

    Merci

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut
    Je viens de le tester, il fonctionne même en changeant de répertoire
    Heu par contre c surement une erreur de copier coller, mais Nomchercher ne sert a rien
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonsoir Qwazerty,

    Nomchercher n'est pas une erreur mais j'ai modifié en cours de route

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nomchercher = "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro"
    à l'origine c'était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nomchercher = "T:\ST\INSTALLATIONS INDUSTRIELLES\CRA - REPORTING\essai macro\aba*"
    Par exemple pour trouver tous les fichiers commençant par aba... et ça fonctionnait.

    Pourquoi sur mon PC ça plante quand il cherche sur C ou D ??
    Peut il y avoir une explication à part l'erreur de saisie du chemin ?

    Merci

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut
    Quand je dis qu'il ne sert a rien, c'est que dans la partie de code que tu a mis sur le post, il n'est utilisé nul par.
    Mais je ne pense pas que ton problème vienne de la? lorsque tu modifies le chemin, tu modifies bien chemin et pas Nomchercher (je pose le question connaissant deja la réponse, puisque si tu ne modifiés pas chemin tu trouverais toujours les même fichiers contenus dans T:\...
    Pour le reste je ne pourrais pas te venir en aide j'en ai peur, n'ayant pas l'erreur chez moi, il est difficile de faire des essais.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonjour Qwazerty,

    Citation Envoyé par Qwazerty Voir le message
    Salut
    Je viens de le tester, il fonctionne même en changeant de répertoire
    Heu par contre c surement une erreur de copier coller, mais Nomchercher ne sert a rien
    A++
    Qwaz
    Oui en effet j'ai du faire une erreur de copier coller, sur un autre bout de code je m'en servais pour chercher certains fichiers en fonction des lettres du nom du fichier.
    Mais ce n'est pas cela qui empêche le code de fonctionner sur C ou D.
    La macro est dans thisworkbook et non dans un module, je vais faire l'essai mais je doute que ça vienne de là.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonsoir à tous,

    Mon problème reste entier malgré tous les essais.
    j'ai placé la macro dans un module au lieu de thisworkbook, pas de changement.
    les () après .execute idem.

    J'ai réessayé ce matin, la macro marche sur tous les lecteurs y compris sur une clé du port USB, mais ni sur C ni sur D

    Quelqu'un a une idée ??

Discussions similaires

  1. probleme de tomcat avec application jsf
    Par marria77 dans le forum JSF
    Réponses: 3
    Dernier message: 03/01/2008, 17h25
  2. Probleme de chemin avec un TDirectoryListBox
    Par blondelle dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/09/2006, 13h46
  3. Probleme de chemin avec AspSmartUpload
    Par Galaad dans le forum ASP
    Réponses: 15
    Dernier message: 07/09/2006, 09h11
  4. Probleme de chemin d'acces avec batch
    Par kernerteam dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 28/04/2006, 16h45
  5. probleme de chemin d'acces avec aspSmartUpload
    Par julio_097 dans le forum ASP
    Réponses: 2
    Dernier message: 22/08/2005, 16h53

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