Cellule qui donne le chemin de recherche d un fichier

bonsoir,

comment modifier ce code qui va chercher le fichier sur la racine du disque dur, par un autre qui va ouvrir la recherche dans un chemin spécifié par exemple en g5 ? (ex: je note en g5 : c:\ test\ mesures\ )

ChDir ThisWorkbook.Path

fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")

merci à vous

Salut.

A condition que l’extension soit également inscrite dans la cellule G5, tu peux utiliser le code suivant :

fich_txt = ThisWorkbook.Path & "\" & Range("G5")

Je ne comprends pas l’utilité de ton instruction ChDir ThisWorkbook.Path dans le cas précis, mais j'ai compris par ce passage que le fichier dont tu veux créer le chemin complet par ton autre instruction est dans le même dossier que ton fichier dans lequel se trouve ta macro.

Si ce n’est pas ça, merci de joindre un fichier.

Cordialement.

salut,

je te fais passer le fichier, la macro en question ( Sub import_donnees() ) est appelée par le bouton : "importation recette "txt" "

le chemin d'ouverture du fichier texte recherché est noté en "i5" et peut être modifiable

(actuellement, lors de l'appui sur importer, j'ouvre le répertoire document sous c:\ et non celui de l'emplacement du fichier excel )

je joins également un exemple de fichier texte type que j'importe

merci

Salut,

J’avais déjà bien compris ce que faisait ta première instruction fournie fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*"). Celle-ci affecte à la variable fich_txt

A) le chemin du fichier sélectionné,

B) le nom du fichier sélectionné et

C) l’extension du fichier sélectionné

dans l’explorateur qui s’ouvre alors.

Cette variable te sert ensuite à ouvrir le fichier sélectionné par l’instruction suivante Workbooks.OpenText Filename:=, mais ça tu ne l’avais pas dit la première fois.

Je t’avais donc proposé une nouvelle instruction dans laquelle la variable fich_txt était créée sur la base

A) du chemin du fichier de base (ThisWorkbook.path ; je t’ai posé une question à ce sujet, mais tu n’y as pas répondu), et

B et C) du nom du fichier et de son extension que je pensais qui étaient inscrits en G5.

Tu me fournis maintenant – enfin – ton fichier et je constate que dans la cellule I5 (pourquoi avais-tu dis G5 la première fois ??????) tu as seulement

A) un chemin, sans le nom du fichier à ouvrir ni son extension.

Où la macro devrait donc trouver le nom (B) et l’extension (C) du fichier à ouvrir ???????

dann a écrit :

comment modifier ce code qui va chercher le fichier sur la racine du disque dur, par un autre qui va ouvrir la recherche dans un chemin spécifié par exemple en g5 ? (ex: je note en g5 : c:\ test\ mesures\ )

Ce n’est pas ton explication assez ténébreuse ci-dessus dans ton premier message qui peut m’aider à comprendre ton besoin

Amicalement.

salut,

je reconnais que mes explication sont quelque peu confuses et mon savoir sur excel tout autan

ceci dit, je ne maitrise pas la macro que l'on m'a gentiment écrite mais que je souhaite modifier et j'ai fais l'erreur d' envoyer un fichier

qui évolue et change au fur et à mesure des fonctions que l'on me demande.(dans mon fichier initial, le chemin d'exportation et d'importation figuraient dans la même cellule, désolé pour ça ).

Je vais tenter de combler mes explications par rapport à tes questions, juste sur le principe pour aller chercher le fichier txt:

lorsque je lance la macro par le bouton importer, une fenêtre de l'explorateur doit s'ouvrir me menant directement dans le répertoire où sont stockés tout les fichiers txt, don le chemin figure en (" I5"),( ceci est juste le chemin du répertoire de stockage et aucun nom de fichier n'est défini, on sait juste que notre fichier est un "txt" et se trouve dans ce répertoire)

Une fois dans ce répertoire, je dois pouvoir choisir lequel d'entre eux ouvrir et exécuter la suite des instructions de la macro.

J'espère avoir combler toutes mes inexactitudes.

à+

Je pense t'avoir enfin compris. Alors remplace ta ligne

ChDir ThisWorkbook.Path

par

ChDir Range("I5")

et la boîte de dialogue dans laquelle tu peux choisir ton fichier devrait s'ouvrir sur le dossier désigné en I5.

Chaleureusement.

re ... salut,

oui, cette fois ci, on est sur la même longueur d'ondes . je viens d'effectuer la modif (que j'avais tenté) mais ça ne fonctionne pas et ne modifie en rien le fait que ma fenêtre qui s'ouvre va dans : C:\Users\dann\Documents\, bien que le fichier excel ne se trouve pas du tout à cet endroit là, alors que ("i5") contient g:\sauvegarde\cuisine\temporaire\

un vrai casse tête !

Re,

dann a écrit :

alors que ("i5") contient g:\sauvegarde\cuisine\temporaire\

C'est peut-être bien de là que vient le problème. En I5 tu devrais avoir un chemin sans le dernier signe \.

Essaie de placer le texte ci-dessous en I5 :

g:\sauvegarde\cuisine\temporaire

En tous cas, chez moi ça fonctionne très bien. J'ai essayé avec 3 ou 4 chemins différents, sans problème

Utilises-tu vraiment le même fichier que le fichier-modèle que tu m'as fourni ?

Amicalement.

toujours sans résultat, même pire pour moi .

je refais passer le fichier qui pose problème (il y a une modif qui diffère du précédent mais sans incidence sur le problème d'ouverture)

fenêtres d'erreur affichées:

1/ erreur 1004, cette action ne peut être appliquée à une cellule fusionnée

2/ dans la macro " import_donnees()", la ligne : Feuil1.Range("B7:B" & Feuil1.Cells(Rows.Count, 2).End(xlUp).Row).ClearContents, est surlignée en jaune

à+

44normaliseur18.xlsm (148.71 Ko)

Dans le fichier que tu me fournis maintenant, les données de la plage B7:Bxxxxx ont déjà été effacées. L’instruction Feuil1.Cells(Rows.Count, 2).End(xlUp).Row qui recherche la dernière ligne de la colonne B trouve donc le dernier texte inscrit à la ligne 2.

L’instruction complète Feuil1.Range("B7:B" & Feuil1.Cells(Rows.Count, 2).End(xlUp).Row).ClearContents – qui comprend le passage mentionné ci-dessus – veut alors effacer les cellules de la plage B7:B2 ( !!!!!!). Tout d’abord cette plage ‘’à l’envers’’ est bizarre et de plus elle comporte des cellules fusionnées qui ne peuvent pas être effacées ainsi ; d’où le message d’erreur que tu reçois.

Rajoute donc du texte (même du texte-bidon) dans la plage B7:B8 et recommence tes essais.

L’instruction suivante – qui fait l’objet de ta première question et dont la solution était ChDir Range("I5") – fonctionne parfaitement chez moi sur un deuxième ordinateur et finalement AVEC OU SANS ce signe \ final dans la cellule I5.

Amicalement.

Merci pour tes explications, ça éclaire ma lanterne. Je teste ça ce soir en rentrant du boulot.

À +

Je ne suis pas super pressé de recevoir ta réponse donc évite de donner ce genre d’information intermédiaire. Autrement, je dois prendre garde de contrôler ta prochaine réponse. Un des moyens pour y arriver serait de noter ça sur mon agenda - mais j’ai suffisamment d’autres choses à noter - ou de me connecter au Forum de manière à être informé automatiquement par le site la prochaine fois que tu y interviens ; là aussi, je m’en passerais bien.

Ne tombe pas non plus dans l’extrême contraire et ne laisse pas un sujet trop longtemps sans réponse, ne serait-ce que parce que ça évite que l’on ne sache plus quel était le problème après une semaine ou deux et que l’on doive s’y replonger entièrement ou simplement par politesse.

Amicalement.

bonjour, ok, j'ai pris note.

les modifications demandées ayant été appliquées, ça fonctionne, mais uniquement si les fichiers se trouvent sur le disque c , impossible d'aller sur un autre disque via l'adresse en ("i5")

Je ne sais plus trop que te dire

A force de faire de nouveaux essais, je découvre que lorsque ça fonctionnait chez moi, ça tenait peut-être plus du hasard que d’autre chose. Je dois donc t’avouer être dépassé par le problème. Désolé de ne pas pouvoir t’aider plus.

Peu de membres s’intéressant à un fil déjà bien entamé, indique éventuellement celui-ci comme ‘’Résolu’’ et ouvre-en un autre. Mais démarre alors tout de suite correctement en fournissant tes deux fichiers (Excel et .txt) et de bonnes explications au sujet de ce que tu attends.

Dans l’espoir de t’avoir quand même été utile à quelque chose.

Amicalement.

Il n y a pas de soucis , le plus important est d essayer donc merci pour ce que j ai pu apprendre.

Je vais continuer de chercher et ok pour clôturer

A +

Rechercher des sujets similaires à "qui donne chemin recherche fichier"