Dossier parent, chemin relatif

Résolu/Fermé
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020 - 2 juin 2017 à 18:11
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020 - 6 juin 2017 à 16:48
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,
A voir également:

1 réponse

jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221
Modifié le 2 juin 2017 à 19:26
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
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221
Modifié le 2 juin 2017 à 19:36
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
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020 > jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024
6 juin 2017 à 15:18
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
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020
6 juin 2017 à 15:22
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
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020
6 juin 2017 à 15:57
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
kev76150 Messages postés 16 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 25 août 2020
6 juin 2017 à 16:48
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