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 :

application.getopenfile - comment récuperer le chemin du fichier sélectionné ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 268
    Par défaut application.getopenfile - comment récuperer le chemin du fichier sélectionné ?
    bonjour
    J'ia une macro qui utilise le code ci dessous pour aller ouvrir un fichier .txt.
    Je voudrais récupérer le chemin ou se trouve le fichier sélectionné.
    Comment faire ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
     
        If Fichier = "Faux" Then
            Beep
            MsgBox "Aucun fichier n'a été sélectionné"
            Exit Sub
        Else

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RepertoireFichierTxt = CurDir
    Cordialement.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Par défaut Nom de fichier uniquement
    Bonjour,

    Curdir OK, sauf si son fichier n'est pas dans le répertoire actif...

    Sinon, tu peux utiliser la fonction si dessous pour trouver la position du dernier \. Et tu extrais soit Path soit Nom avec les fonctions Left() ou Right().


    InStrRev, fonction

    Description

    Renvoie la position d'une occurrence d'une chaîne dans une autre, à partir de la fin de la chaîne.

    Syntaxe

    InstrRev(stringcheck, stringmatch[, start[, compare]])

    Exemple :

    PosBackSlash = InStrRev(FichierTXT, "\")
    PathTXT = Left(NomPlan, PosBackSlash - 1)
    NomFichierTXT = Right(FichierTXT, Len(FichierTXT) - PosBackSlash)

    Ca devrait le faire...

    Cordialement.

    Bruno

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ZX12R Voir le message
    Curdir OK, sauf si son fichier n'est pas dans le répertoire actif...
    Bonjour,

    Si la variable Fichier n'est pas False derrière le GetOpenFileName, le répertoire du fichier Txt sera forcément récupéré avec Curdir.

    Cordialement.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Par défaut Merci Eric
    Tu as complètement raison. Et pourquoi faire compliqué quand on peut faire simple...

    Cordialement.

    Bruno

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    il n'y a pas besoins de tout ca

    la variable "fichier est forcement un variant
    j'entends par que le getopenfilename qui ne récupère que le chemin et n'ouvre pas le fichier renvoie un booléen a l'état false si annulé
    ou
    un string contenant le chemin complet du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub test()
    dim fichier as variant 
    fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
     
        If fichier = "Faux" Then
            Beep
            MsgBox "Aucun fichier n'a été sélectionné"
            Exit Sub
        Else
    MsgBox "le fichier  existe son chemin c'est " & vbcrlf &  fichier
    End If
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/11/2008, 12h40
  2. Comment récuperer le chemin d'un exécutable ?
    Par bigey3 dans le forum Langage
    Réponses: 13
    Dernier message: 01/01/2008, 18h14
  3. récuperation de chemin de fichiers !!!
    Par massiliaman dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/07/2007, 18h17
  4. Comment obtenir le chemin du fichier class ?
    Par Elbarto dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/11/2005, 10h37
  5. Comment récuperer le chemin des mails reçus de Outlook ?
    Par chleuh dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 16/08/2005, 16h44

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