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 Excel] Recupérer le répertoire du fichier .xls courrant


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut [VBA Excel] Recupérer le répertoire du fichier .xls courrant
    Bonjour,

    A partir d’une Macro dans un fichier .xls, je voudrais récupérer le chemin du répertoire dans lequel le fichier .xls est stocké pour pouvoir y sauvegarder une feuille en .csv (à côté).
    Je pourrais sauvegarder mon .csv dans le répertoire « .\ » mais pour que ça marche je suis obligé de sauvegarder mon .xls qui contient la macro avant (apparemment, pour Excel, le répertoire courrant n’est pas celui d’où vient le fichier tant qu’il ne l’a pas sauvegardé).

    Comment faire ?

    Merci.

  2. #2
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Essaie avec curdir

    A+

  3. #3
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    apparemment, pour Excel, le répertoire courrant n’est pas celui d’où vient le fichier tant qu’il ne l’a pas sauvegardé
    J'ignore si c'est bien ce que tu veux dire mais... effectivement, avant d'avoir enregistré un fichier, le fichier ne sait pas où il est ...
    C'est pas méchant...

    A+

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir Greg2, bonsoir Ouskel'n'or

    s'il s'agit de recuperer le repertoire du classeur contenant la macro , j'utiliserais


    cordialement
    michel

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut
    Avec CurDir j'ai le même problème, il me revoit quelque chose comme "C:\...\mes documents"

    Je pensais qu'Excel était capable de savoir d'où venait le fichier qu'il vient d'ouvrir (et donc qui existait déjà avant).

    Je voulais éviter de sauvegarder inutilement "à la main" mon fichier à chaque fois, uniquement pour que ma macro fonctionne.

  6. #6
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Moi, je ferais ce qu'a proposé Silky, parce que c'est ce que je fais en général...

  7. #7
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Effectivement, CurDir ne marche que si le fichier est actif.

    A+

  8. #8
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    Curdir ne renvoi pas le chemin du fichier Excel ouvert... mais le chemin courant ..

    Citation Envoyé par Aide en ligne VbA
    CurDir, fonction


    Renvoie une valeur de type Variant (String) indiquant le chemin en cours.

    Syntaxe

    CurDir[(drive)]

    L'argument facultatif drive est une expression de chaîne désignant un lecteur existant. Si aucun lecteur n'est indiqué ou si l'argument drive est une chaîne de longueur nulle (""), la fonction CurDir renvoie le chemin du lecteur courant. Sur le Macintosh, la fonction CurDir ne tient pas compte du lecteur spécifié dans l'argument drive et renvoie le chemin d'accès du lecteur courant.
    les fonctions ChDir et ChDrive permettent de changer de répertoire ou de disque courant ...

  9. #9
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Allo? Greg2 !!!
    Alors, le code:
    , il te convient?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut
    Ca semble marcher


    Et super les Cours Excel c'est top

    Merci.

  11. #11
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Avec le tag "Résolu" et tout et tout!
    Ça va faire plaisir à Théocourant...

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    5 années et demi se sont écoulées, mais j'aimerai ajouter un petit commentaire.
    Pour ouvrir un fichier, j'ai dû ajouter le "\" à la fin du chemin récupéré à l'aide ThisWorkbook.path et l'extension (si nécessaire).

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Path_name As String
    Dim File_name As String
    Dim Complete_File_name As String
     
    Path_name = ThisWorkbook.Path
    Complete_File_name = Path_name & "\" & File_name & ".xlsx"
    Un grand merci à ce topic

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 67
    Points : 63
    Points
    63
    Par défaut belle trouvaille
    Bonsoir la communauté, cela fait un bon moment que je suis sur un projet où j'utilisais à plusieurs reprise les chemins d'accès pour exécuter du code spécifique à des classeurs excel.je me disais que plus tard je chercherai à écrire une fonction afin récupérer automatiquement ces chemins mais voilà que le forum illumine ma nuit vient par la découverte de thisworkbook.path.comme quoi la nuit peut vraiment porter conseil,merci à tous.
    Cordialement

  14. #14
    Candidat au Club
    Homme Profil pro
    Finance - étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Finance - étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par latex_man Voir le message
    5 années et demi se sont écoulées, mais j'aimerai ajouter un petit commentaire.
    Pour ouvrir un fichier, j'ai dû ajouter le "\" à la fin du chemin récupéré à l'aide ThisWorkbook.path et l'extension (si nécessaire).

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Path_name As String
    Dim File_name As String
    Dim Complete_File_name As String
     
    Path_name = ThisWorkbook.Path
    Complete_File_name = Path_name & "\" & File_name & ".xlsx"
    Un grand merci à ce topic


    Tu as oublié de définir file_name !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Path_name As String
    Dim File_name As String
    Dim Complete_File_name As String
     
     
    Sub outhé()
     
    File_name = ActiveWorkbook.Name
    Path_name = ThisWorkbook.Path
    Complete_File_name = Path_name & "\" & File_name
     
    End Sub

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

Discussions similaires

  1. Récupérer l'adresse d'une zone de sélection
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2020, 15h18
  2. Réponses: 1
    Dernier message: 18/01/2010, 22h48
  3. [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Par Trollakuir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2006, 10h02
  4. Réponses: 1
    Dernier message: 26/04/2006, 12h01
  5. Macro excel qui ferme tous les fichiers .xls
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/01/2006, 20h21

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