Dossier parent, chemin relatif

Résolu/Fermé
Signaler
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020
-
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020
-
Bonjour,
j'ai trouver des éléments de réponse sur le forum mais je n'ai pas réussi à faire ce que je voulais...
J'ai un fichier Excel qui s'appelle "123"
le chemin pour y accéder est : "c:/aaa/bbb/ccc"
le chemin du fichier est donc : "c:/aaa/bbb/ccc/123"
Dans le dossier "ccc" j'ai un autre dossier "456" dans lequel j'y est ajouter des images.
nom d'une image par exemple : "Image 1"

Dans mon fichier Excel "123" je fait appelle à des images qui sont dans le dossier "456"


Sub inserImage()
répertoirePhoto = "c:/aaa/bbb/ccc/456"
nom = "Image 1"
Set c = Range("C31").MergeArea
With ActiveSheet
.Pictures.Insert(répertoirePhoto & nom & ".jpg").Name = nom
End With
End sub


Le problème est que si je déplace mon dossier "ccc" autre part je ne peut plus faire appelle à mon "Image 1" dans mon fichier "123"

Je sais que pour accéder au dossier parent il faut utiliser ".." mais je ne sais pas trop comment faire dans mon exemple. Il faut créer un chemin relatif. J'ai essayé plusieurs chose mais je n'y arrive pas.
Merci d'avance si vous pouvez m'aider. Et je m'excuse par avance si je n'ai pas réussi malgré toutes les réponses à ce genre de question que l'on peut trouver sur internet.

Cordialement,

1 réponse

Messages postés
33726
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 janvier 2022
8 348
Bonjour,

Je n'utilise pas de procédure VB/VBA, mais le principe serait :
répertoirePhoto = "./456"
ou tout simplement
répertoirePhoto = "456"

car dans ton cas tu n'as pas à remonter d'un cran avec ..

Mais le chemin relatif signifie que tu es sûr au départ d'être dans c:/aaa/bbb/ccc/ . Je ne sais pas si le répertoire courant en VB/VBA correspond au nom du répertoire qui contient le fichier, où à un autre répertoire qui serait lié à l'icone Excel.

cdlt



        un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
Messages postés
33726
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 janvier 2022
8 348
il doit bien exister une fonction vb qui récupère le nom du répertoire dans le nom complet du fichier courant, tu pourrais donc plutôt initialiser ta variable avec quelque chose du type :
répertoirePhoto = extract.nomdir(currentfile)
ma fonction étant totalement inventée ;-)

2 remarques, es-tu certain de pouvoir utiliser des / dans les noms ? Sous windows c'est plutot un \ : c:\aaa\bbb\ccc\456, et quand tu constitues le nom de fichier, ne faut-il pas rajouter un \ entre le nom de répertoire et le nom de fichier :
.Pictures.Insert(répertoirePhoto & '\' & nom & ".jpg").Name
ou de mettre l' \ en fin du nom du répertoire.
0
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020
>
Messages postés
33726
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 janvier 2022

BONJOUR,
J'ai déjà essayer :
répertoirePhoto = ".\456\
mis cela ne fonctionne pas.

T'es 2 remarque sont exacte. Je me suis trompé en écrivant ce mail entre "/" et "\" et il y a bien un "\" a la fin du répertoire.

Après je sais pas si bien compris le fonctionnement des chemins relatifs mais l'idée est de pouvoir déplacer mon dossier "ccc" et que je puisse toujours faire appel à IMAGE1 dans mon fichier excel 123
0
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020

en faite c'est bon ça fonctionne avec
répertoirePhoto = ".\ccc\456\
Merci de ta réponse :)
Il fallait juste remonter d'un dossier de plus

Merci
0
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020

Donc... en faite quand mon dossier "ccc" est sur mon bureau ça fonctionne bien en utilisant
répertoirePhoto = ".\ccc\456\
Mon image s'insère bien.
Mais quand je déplace mon dossier "ccc" dans "Mes document" ça ne fonctionne plus.
Je ne comprend pas pourquoi ????
0
Messages postés
16
Date d'inscription
mardi 13 décembre 2016
Statut
Membre
Dernière intervention
25 août 2020

J'ai trouver une autre solution en utilisant :
Dim chemin As String
ChDir (ThisWorkbook.Path)
ChDir "."
chemin = CurDir(ThisWorkbook.Path)


répertoirePhoto = chemin + "456\"

J'ai un autre soucie maintenant qui a rien a voir. Je vais donc poster un autre sujet sur le forum

Merci
0