Chemin d'accès fichier

Mon code ne tient pas compte de ce qu'il y a dans le dossier, (ni le nombre de sous dossiers ni leurs noms) il récupère juste le chemin d'accès et le nom de fichier que vous avez sélectionné via la boite de dialogue et vous retourne une chaîne de caractères qui peut vous permettre le cas échéant de retrouver le dit fichier plus tard moyennant qu'il n'ai changé ni de nom ni d'emplacement entre temps.. Vous vouiez bien ne récupérer que le chemin pas manipuler les dossiers et les déplacer dans votre ordi auquel cas, effectivement mon code n'est pas suffisant ?

Lequel de vos codes parlez-vous ? Que je vous montre le résultat que j'obtiens

Merci de votre aide

Clem

celui-ci

Sub Récupérer_CheminAcces_AvecFich()

Dim chemin_fichier As String
Dim chemin As String
Dim tableau As Variant

    chemin_fichier = Application.GetOpenFilename(, , "Sélectionner Fiche")

    'range les différentes partie du chemin d'accès dans un tableau 
    tableau = Array(Split(chemin_fichier, "\"))

    'récupère qu'une partie du chemin d'accès
    'Met bout à bout le contenu du tableau grâce à tableau(0)(Le numéro de la cellule qui contient ce que vous voulez garder : voir ex)
    chemin = "\" & tableau(0)(2) & "\" & tableau(0)(3) & "\" & tableau(0)(4)
    MsgBox chemin

End Sub

exemple C:\Users\pc\Documents\classeur1.xlsx

tableau(0)(0) = c:

tableau(0)(1) = Users

tableau(0)(2) = pc

tableau(0)(3)=Documents

tableau(0)(4)=classeur1.xlsx

celui-ci

Sub Récupérer_CheminAcces_AvecFich()

Dim chemin_fichier As String
Dim chemin As String
Dim tableau As Variant

    chemin_fichier = Application.GetOpenFilename(, , "Sélectionner Fiche")

    'range les différentes partie du chemin d'accès dans un tableau 
    tableau = Array(Split(chemin_fichier, "\"))

    'récupère qu'une partie du chemin d'accès
    'Met bout à bout le contenu du tableau grâce à tableau(0)(Le numéro de la cellule qui contient ce que vous voulez garder : voir ex)
    chemin = "\" & tableau(0)(2) & "\" & tableau(0)(3) & "\" & tableau(0)(4)
    MsgBox chemin

End Sub

exemple C:\Users\pc\Documents\classeur1.xlsx

tableau(0)(0) = c:

tableau(0)(1) = Users

tableau(0)(2) = pc

tableau(0)(3)=Documents

tableau(0)(4)=classeur1.xlsx

Donc il y a bien une prise en compte du nombre de dossier avec le tableau ?

Puisque en fonction du fichier que je vais chercher, je n'obtiens pas là même chose:

1 2

(le chemin ne va pas jusqu'au fichier sélectionné dans la 2eme image)

Clem

Normalement non, car le type de la variable tableau est de type variant et qui plus est, je ne définis pas de limite à ce tableau donc si pour accéder à mon fichier je dois passer par 4 dossiers comme mon exemple mon tableau aura 5 cellules, si pour accéder au fichier je dois passer par 6 dossiers le tableau aura 7 cellules.

Dans votre cas, je vous conseille d'afficher le volet des variables locales sur l'éditeur de visual basique et de vérifier dans la variable tableau combien celle-ci contient de cellule avant de faire votre concaténer et d'écrire votre ligne de code finale en conséquence.

courage vous allez y arriver

Normalement non, car le type de la variable tableau est de type variant et qui plus est, je ne définis pas de limite à ce tableau donc si pour accéder à mon fichier je dois passer par 4 dossiers comme mon exemple mon tableau aura 5 cellules, si pour accéder au fichier je dois passer par 6 dossiers le tableau aura 7 cellules.

Dans votre cas, je vous conseille d'afficher le volet des variables locales sur l'éditeur de visual basique et de vérifier dans la variable tableau combien celle-ci contient de cellule avant de faire votre concaténer et d'écrire votre ligne de code finale en conséquence.

courage vous allez y arriver

Donc je dois compter le nombre de dossiers pour accéder à mon fichier et en fonction réaliser ma ligne de code ?

exactement, une boucle devrait suffire

Je commence petit à petit à comprendre...

J'ai une vague idée d'à quoi pourrait ressembler le code

i = nb de valeurs dans le tableau - 1

chemin = ".\" & tableau(0)(i)

Tant que i < nb de valeurs dans le tableau :

chemin = chemin & "\" & "\" tableau (0)(i)

i = i +1

Fin tant que

Par contre, si je change mon dossier PROJET de place, il faudra remodifier le code

Ne peux t-on pas faire un code qui supprime automatiquement tout le chemin qui arrive avant le dossier PROJET ?

Rechercher des sujets similaires à "chemin acces fichier"