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 :

[VBA-E] Recherche nom de fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut [VBA-E] Recherche nom de fichier
    bonjour,
    après quelques heures de recherche, j'ai pu faire un code me permettant de retrouver le chemin et le nom d'un fichier à partir d'une expression texte contenu dans ce fichier. En fait, dans un tableau Excel, dans la colonne A, j'ai mis l'expression contenue dans le fichier que je recherche et le nom du ou des fichiers recherchés apparait dans les colonnes B, C, D,... Le seul problème est que si dans l'expression recherchée (en colonne A), il y a des espaces ou des signes (:,;,) alors j'obtiens comme réponse en colonne B, C,... plusieurs fichiers qui contiennent tous le début de l'expression. Il faudrait que je puisse faire une recherche sur le terme exact contenu en colonne A.
    Voici mon 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
    23
    24
    25
    Sub recherchefichier()
    For c = 1 To 5
    Cells(c, 1).Select
    y = Cells(c, 1).Value
    With Application.FileSearch
        .NewSearch
        .LookIn = "C:\Documents and Settings\Farid\Bureau\test vba"
        .SearchSubFolders = True
        .TextOrProperty = y
        .MatchTextExactly = True
        .FileType = msoFileTypeAllFiles
        If .Execute() > 0 Then
            MsgBox "There were " & .FoundFiles.Count & _
                " file(s) found."
            For i = 1 To .FoundFiles.Count
                Cells(c, 1 + i) = .FoundFiles(i)
            Next i
        Else
            MsgBox "There were no files found."
        End If
     
    End With
    Next c
     
    End Sub
    Merci pour votre aide.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en rajoutant des "..?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ..
    For c = 1 To 5
     y = """" & Cells(c, 1).Value & """"
    ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    Je viens d'essayer mais j'ai toujours la meme réponse.
    En fait dans la cellule A1, j'ai l'expression "Test 1". J'ai enregistré d'autres fichiers word qui contiennent "Test 2", "Test 3". Quand je lance la recherche pour la cellule A1, le programme me renvoie le chemin pour le fichier contenant "Test 1" mais également les chemins pour ceux contenant "Test 2" et "Test 3". Lorsque je retire l'espace entre le "t" et le "1", ca marche. Si je remplace l'espace par un "_", ca ne marche plus.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    et si tu remplaces Value par formula ici ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    y = Cells(c, 1).formula
    A tout hasard, j'ai eu le pb et j'ai remplacé l'espace par un underscore dans mes noms de fichiers

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    Je viens d'essayer mais ca ne marche toujours pas et les underscores non plus.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu mets un undersore à tes noms de fichiers, pas seulement dans les cellules mais aux noms des fichiers eux-mêmes dans leurs répertoires, je ne vois pas comment ça ne pourrait pas fonctionner.
    Tu vérifies et tu nous dis
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA Excel récuperer nom de fichier via URL
    Par FrenchyBoss dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2013, 16h34
  2. Petits pb en VBA :espace dans noms des fichiers
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2010, 22h23
  3. [Excel VBA]Recup du nom du fichier référencé
    Par Misha dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2008, 12h04
  4. [VBA-E] Récupération Nom de fichier
    Par trihanhcie dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 02/03/2007, 13h53
  5. [VBA-E] récupérer nom utilisateur fichier en lecture seule
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/01/2007, 15h46

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