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 :

Rechercher et ouvrir un fichier dans un dossier sous condition [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 54
    Par défaut Rechercher et ouvrir un fichier dans un dossier sous condition
    Bonjour

    Via un code vba je tente de faire une recherche de fichier dans un dossier excel via un inputbox dans lequel on met le nom du fichier recherché. Le code fonctionne pour le cas ou le fichier est présent dans le dossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub open_file()
     
    Dim opened_trade As String
     
    opened_trade = InputBox("Entrer la reference recherché")  ‘
     
    ChDir "C:\test\dossier1"    ‘définition du chemin d’accès
     
    Workbooks.Open Filename:=opened_trade
     
     
    End Sub
    J’aimerai pouvoir établir une condition qui prend en compte l’éventualité que le fichier n’existe pas, une condition du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF le fichier existe dans le dossier THEN 
    Open le fichier 
    ELSE le fichier n’existe pas dans le dossier THEN 
    MsgBox ‘’ aucun fichier trouvé ‘’
    END IF
    Je n’arrive pas à définir cette condition
    Comment puis-je faire ?

    Merci d’avance

  2. #2
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonjour le forum,

    J'utilise cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '*******************************************************************************************
    '***** Recherche si le fichier existe ******************************************************
    '*******************************************************************************************
    Public Function FichierExiste(ByVal CheminCompletfichier As String) As Boolean
        FichierExiste = False
        If Dir(CheminCompletfichier, vbHidden) <> "" Then
            FichierExiste = True
        End If
    End Function
    '---------------------------------------------------------------------------------------------------------------------------------------
    '*************************************************************************************************
    '---------------------------------------------------------------------------------------------------------------------------------------
    Que tu peux utiliser dans ta condition ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF FichierExiste("C:\....\tonfichier.xlsx") THEN 
    Open le fichier 
    ELSE
    MsgBox ‘’ aucun fichier trouvé ‘’
    END IF

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Tu peux aussi procéder ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim FSO As Object, Fichier As String
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Fichier = "c:\temp\test.xls"
        If FSO.fileexists(Fichier) = True Then
            Workbooks.Open Fichier
        End If

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 54
    Par défaut
    Bonjour

    Merci beaucoup pour vos retours respectifs en fait dans le code j’utilise une inputbox pour insérer un fichier recherché
    J’ai donc en fonction de vos idées procéder de la manière 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
    Sub  test_extfich()
     
     
    Dim FSO As Object, Fichier As Variant, j as string
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
     
     j = InputBox("please insert the option reference") ‘utilisation de l’inputbox pour insérer le nom de fichier recherché
     
        Fichier = "C:\test\dossier_test  & " \ " & j & " ‘concaténation de l’extension au fichier inséré dans inputbox ‘’j’’
        If FSO.fileexists(Fichier) = True Then
            Workbooks.Open Fichier
        ElseIf FSO.fileexists(Fichier) = False Then
        MsgBox ("fichier non trouvé ")
        End If
     
     
    End Sub
    Malheureurement j’ai une erreur 13 au niveau de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier = "C:\test\dossier_test  & " \ " & j & "
    Est le type de variable déclaré qui pose problème (string) j’ai essayé avec un variant ca donne la même chose ?

    Merci pour votre aide

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Et comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier = "C:\test\dossier_test  & "\" & j & "

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 54
    Par défaut
    Bonjour

    L’erreur type 13 disparaît bien par contre la condition ne fonctionne pas :

    Disons que si un fichier j = 2 existe dans le dossier, la msgbox renvoyé par la condition est celle qui stipule que le fichier n’existe pas. J’ai l’impression que la concaténation n’est pas prise en compte ?

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

Discussions similaires

  1. Rechercher existence d'un fichier dans un dossier
    Par tony_95 dans le forum VB.NET
    Réponses: 7
    Dernier message: 26/04/2010, 11h30
  2. Réponses: 2
    Dernier message: 03/06/2008, 21h56
  3. Rechercher un fichier dans un dossier
    Par GomuSan dans le forum Windows
    Réponses: 0
    Dernier message: 30/05/2008, 20h02
  4. Limite du nombre de fichiers dans un dossier sous Fedora4 ?
    Par arkofab dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 15/08/2007, 00h58
  5. Rechercher les nom de fichier dans un dossier
    Par Didibzh dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2007, 11h41

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