ouverture d'un fichier

C

crany

Guest
bonjour,

Je suis en train de travailler sur une macro excel et un problème assez bête se pose. Je me demande comment ouvrir un fichier en n'utilisant que son chemin relatif et non son chemin absolu.

C'est à dire, comment faire pour ouvrir un fichier contenu par exemple dans le même répertoire que celui d'où la macro est lancée sans passer par un chemin absolu (de type c:\\bloup\\monrepexcel\\nomdufichier) mais plutot par un chemin relatif (cad juste: nomdufichier)

Je suis assez novice sous vba excel aussi merci de votre compréhension si la solution à mon problème était évidente :eek:
 
C

crany

Guest
Ben oui, ca j'ai testé depuis le debut mais j'ai bug me disant qu'il y'a une erreur dans le nom du fichier. Si par contre je rajoute explicitement le chemin d'accès, alors là, *pouf* ca marche.

Je précise au passage que le fichier à ouvrir et le fichier contenant la macro excel sont bien dans le même répertoire :huh:
 

Ki_Yom

XLDnaute Nouveau
alors essaye ca

fichier = InputBox('nom du fichier a ouvrir')
chemininit = Len(ActiveWorkbook.FullName)
fichierinit = Len(ActiveWorkbook.Name)
chemin = chemininit - fichierinit
cheminfichier = Left(ActiveWorkbook.FullName, chemin) & fichier
Workbooks.Open Filename:=cheminfichier
 
C

Crany

Guest
Bon, cette solution marche bien mais à condition de bien rentrer le nom de fichier dans la boîte de dialogue. Je doute que la personne qui m'a demandé cette macro s'en satisfasse mais bon en tout cas merci beaucoup de ton aide! :)
 
C

Crany

Guest
Bon et bien problème résolu avec un getOpenFileName au final. Ceci dit, je suis quand même assez frustré et étonné que l'ouverture de fichier soit gérée de manière si étrange sous Excel (ou bien d'être suffisament mauvais pour pas arriver à ouvrir un $%*¨£ de fichier! :p)

Voila donc, merci de votre aide et bonne continuation a vous
 
C

Crany

Guest
Oui pas de problème, tout ça je peux me débrouiller à trouver sur google sans trop de problèmes et arriver à faire un truc plus convivial. Je voulais juste faire un truc sans boîte de dialogue et pour trouver une aide avec google expliquant comment manipuler le système de fichiers avec VBA, bah c'est pas gagné :)
 

Ki_Yom

XLDnaute Nouveau
je comprend pas le fichier que tu veux ouvrir tu récupère le nom comment?
si c 'est interne à une macro ben tu vire le input
si c'est l'utilisateur qui choisi tu utilise la fonction dim pour faire la liste des fichier ensuite un userform avec une listebox et 2 bouton ok annuler et en avant! :)
 
C

Crany

Guest
Ben à la base, je voulais pouvoir faire en sorte que la position de mes 2 fichiers excel dans l'arborescence n'influe pas sur le deroulement de la macro tant qu'ils gardent la même position relative (par exemple qu'ils restent dans le meme repertoire). Mais bon, visiblement, ca marche pas depuis chez moi pourtant g à peu près tout testé. Du coup g fait une boîte de dialogue pour que l'utilisateur puisse choisir lui même le fichier à ouvrir avec un getOpenFileName et ca roule comme ca. C'est juste étrange que je ne sois pas parvenu à faire ce que je voulais à la base étant deonné que je n'ai jamais rencontré ce problème là avec un langage plus conventionnel (c, java, ...)

Mais en tout cas, c'est bon ne te casse plus la tête, je me suis bien mis d'accord avec la personne qui veut la macro et la boite de dialogue où l'on sélectionne le fichier lui convient bien au final. Donc voilu :)
 
C

Crany

Guest
Ah oui exact ca marche j'avais meme pas percuté :eek:

Ben au final, je vais rester sur la solution del a boîte de dialogue, ca sera plus embettant à utiliser mais au moins je susi sûr que la personne qui se servira de la macro ne fera pas n'importe quoi en voulant subitement changer de place un fichier :S
 

Discussions similaires

Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
312 686
Messages
2 090 948
Membres
104 705
dernier inscrit
Mike72