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 :

Monter dans l'arborescence d'un chemin relatif avec ThisWorkBook.Path


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Par défaut Monter dans l'arborescence d'un chemin relatif avec ThisWorkBook.Path
    Bonjour, comme prévu je reviens pour la suite de mon programme, car mon chef m'a mis un gros coup de pression, j'ai un travail de fou pour la fin du mois.
    et je bloque déja sur un chemin relatif.

    Je voudrai remonter dans l'arborescence d'un chemin relatif à partir du comme cela est possible dans d'autre langage (C++)

    Je voudrai obtenir quelque chose comme ça :

    gabarit(0) = ThisWorkBook.path & "..\0-Pieces graphiques\a-Travail\$$ AVM.dwg"

    mais ça me renvoi ça :
    G:\LP_CAO_DAO\PROJET_ENTREPRISE\00-REEL\4-Estimation avant métrés\$$ AVM.dwg

    et le fichier excel se trouve dans le répertoire "4-Estimation avant métrés"

    au lieu de ça :
    G:\LP_CAO_DAO\PROJET_ENTREPRISE\00-REEL\0-Pieces graphiques\a-Travail\$$ AVM.dwg

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pour être complet dans la réponse :
    "remonter" dans l'arborescence signifie pour moi aller dans le dossier "parent" du répertoire ou est stocké ton classeur (ThisWorkBook.Path)
    Donc pour "remonter" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim RepParent As String, RepInitial As String
     
    ChDir (ThisWorkbook.Path)
    RepInitial = CurDir(ThisWorkbook.Path)
    ChDir ".."
    RepParent = CurDir(ThisWorkbook.Path)
    Avec ce code, si ThisWorkbook.Path = C:\Mes Documents\0-Pieces graphiques\a-Travail\$$ AVM.dwg, RepParent retourne :
    C:\Mes Documents\0-Pieces graphiques\a-Travail

    Par contre, si tu veux accéder aux sous répertoires du dossier ou est stocké ton classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim RepEnfant As String
    RepEnfant = ThisWorkbook.Path & "\0-Pieces graphiques\a-Travail\$$ AVM.dwg"
    Avec ce code, si ThisWorkbook.Path = C:\Mes Documents, RepEnfant te retourne :
    C:\Mes Documents\0-Pieces graphiques\a-Travail\$$ AVM.dwg

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme ceci par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Debug.Print Mid(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") + 1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mal lu la question.
    Le répertoire parent c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Debug.Print Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre averti
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Par défaut
    Merci de vos réponse rapide, mais j'ai du mal à l'intégrer dans 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
    Sub CommandButton11_Click()
    Dim RepInitial As String
     
    UserForm2.TextBox11.Locked = False
        UserForm2.TextBox11.BackColor = &H80000005
     
        ChDir (ThisWorkbook.Path)
        RepInitial = ChDir(ThisWorkbook.Path)
        ChDir ".."
        gabarit(0) = ChDir(ThisWorkbook.Path) & "\0-Pieces graphiques\a-Travail\$$ AVM.dwg"
     
        UserForm2.TextBox11.Locked = True
        UserForm2.TextBox11.BackColor = &H80000013
        DoEvents
    End Sub
    j'ai une error "fonction ou variable attendue" sur ChDir, de RepInitial = ChDir(ThisWorkbook.Path)

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Je n'ai apparemment rien compris du tout.

    Soyons simple, donne nous en version développée (C:\Machin\Truc\Bidule_Chouette\) :
    - ThisWorkbook.Path
    - le répertoire ou le chemin d'accès au fichier que tu souhaites placer dans ton gabarit(0)

    EDIT : à tout hasard essayez :
    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
    Sub CommandButton11_Click()
    Dim RepParent As String, RepInitial As String
     
    UserForm2.TextBox11.Locked = False
        UserForm2.TextBox11.BackColor = &H80000005
     
        ChDir (ThisWorkbook.Path)
        RepInitial = CurDir(ThisWorkbook.Path)
        ChDir ".."
        RepParent = CurDir
        gabarit(0) = RepParent & "\0-Pieces graphiques\a-Travail\$$ AVM.dwg"
     
        UserForm2.TextBox11.Locked = True
        UserForm2.TextBox11.BackColor = &H80000013
        DoEvents
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Par défaut
    dans mon gabarit(0) je veux mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "G:\LP_CAO_DAO\PROJET_ENTREPRISE\00-REEL\0-Pieces graphiques\a-Travail\$$ AVM.dwg"
    et mon fichier excel se trouve là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "G:\LP_CAO_DAO\PROJET_ENTREPRISE\00-REEL\4-Estimation avant métrés\Automatisation AVM(suite)_5.B.xls"
    Nop, ça me retoune le bon fichier mais dans le mauvais répetoire :

    G:\LP_CAO_DAO\PROJET_ENTREPRISE\00-REEL\4-Estimation avant métrés\$$ AVM.dwg
    Corona, comment puis-je testé ton code je ne sais pas du tout comment l'intégrer, c'est d'un autre niveau que mon code :p

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par LimsWolf Voir le message
    Corona, comment puis-je testé ton code je ne sais pas du tout comment l'intégrer, c'est d'un autre niveau que mon code :p
    Eh bien comme n'importe quelle fonction
    Si tu exécutes dans une procédure quelconque ou dans la fenêtre d'exécution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    debug.print Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    'ou bien
    msgbox Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    Il va t'afficher le répertoire parent.
    Dans ton code, tu peux aussi placer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    maVariable = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    ChDir maVariable
    'ou directement
    ChDir Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Chemins relatifs avec Windows XP
    Par ademus dans le forum Scripts/Batch
    Réponses: 28
    Dernier message: 12/04/2011, 13h34
  2. Problème de chemin relatif avec TOMCAT pour mes CSS et images
    Par hitokiri06 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/11/2010, 20h00
  3. Réponses: 2
    Dernier message: 20/05/2009, 12h55
  4. Réponses: 3
    Dernier message: 24/04/2008, 13h30
  5. chemin relatif avec vba d'autocad
    Par vince6262 dans le forum Général VBA
    Réponses: 10
    Dernier message: 15/02/2008, 12h14

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