[VBA] récupération fichier par boite de dialogue windows
Dernière réponse : dans Programmation
Alors, le souci est que je demande à l'utilisateur du programme d'entrer un nom de fichier, pour ensuite l'utilisé etc...
Mais comme il faut tout prévoir, au cas où l'utilisateur entre un nom de fichier inexacte, je lui donne une seconde chance en affichant la boite de dialogue intégrée à windows pour qu'il cherche manuellement son fichier.
Ma question réside justement dans le fait qu'il cherche son fichier, et donc - peut-etre - va-t-il le trouver. Et dans ce dernier cas, comment fait-on pour récupérer dans une variable le nom de ce fichier.
Voilà ce que j'ai écrit: -l'étiquette traitement est l'endroit où je traite mes informations- Je sais
pas de goto
mais là, pas le choix...
Mais comme il faut tout prévoir, au cas où l'utilisateur entre un nom de fichier inexacte, je lui donne une seconde chance en affichant la boite de dialogue intégrée à windows pour qu'il cherche manuellement son fichier.
Ma question réside justement dans le fait qu'il cherche son fichier, et donc - peut-etre - va-t-il le trouver. Et dans ce dernier cas, comment fait-on pour récupérer dans une variable le nom de ce fichier.
Voilà ce que j'ai écrit: -l'étiquette traitement est l'endroit où je traite mes informations- Je sais
pas de goto
mais là, pas le choix...
fichier = InputBox("Quel est le nom de votre fichier?") If Dir("c:\" & fichier & ".dbf") = "" Then // test l'existance du fichier If fichier = "" Then //il peut avoir volontairement rien entré Else MsgBox "Fichier non trouvé" trouve_fich = Application.Dialogs(xlDialogFindFile).Show If trouv_fich = False Then GoTo traitement Else fichier= // et c'est ici que je bloque Workbooks.Open "c:\" & fichier & ".dbf" ActiveWorkbook.SaveAs "c:\" & fichier, FileFormat:=xlWorkbookNormal ActiveWorkbook.Close GoTo traitement End If End If Else ... End If
Autres pages sur : vba recuperation fichier boite dialogue windows
Lassé par la pub ? Créez un compte
Citation :
Voilà ce que j'ai écrit: -l'étiquette traitement est l'endroit où je traite mes informations- Je sais
pas de goto
mais là, pas le choix...quand au code il est confu, pourquoi tester si ''fichier'' est vide après avoir tésté qu'il existait ?
pourquoi les fichiers doivent t'il être à la racine pour avoir l'utilisation la plus simple ?
car je test l'existance d'un fichier (contenu dans la variable "fichier"). Mais si l'utilisateur voulait ne rien inscrire, qu'il a donc laissé vide l'inputbox, forcément le fichier n'existe pas. Et je repecte le fait qu'il ne voulait pas charger de fichier en testant si "fichier" est vide.
je ne veux pas faire le totalitariste, mais... en plus de ne pas être sur d'avoir tout à fait compris ce que tu as voulu dire, je ne vois pas à quoi cela va me servir d'analyser cette question quasi-philosophique
EDIT: ne le prend pas mal, malgré l'apparence, il n'y a aucune critique envers ce que tu vient de dire, juste de l'incompréhension...
Citation :
pourquoi les fichiers doivent t'il être à la racine pour avoir l'utilisation la plus simple ?
je ne veux pas faire le totalitariste, mais... en plus de ne pas être sur d'avoir tout à fait compris ce que tu as voulu dire, je ne vois pas à quoi cela va me servir d'analyser cette question quasi-philosophique
EDIT: ne le prend pas mal, malgré l'apparence, il n'y a aucune critique envers ce que tu vient de dire, juste de l'incompréhension...
En fait je me prenais la tete pour rien, il suffisait d'un
Mais bon, c'est pas parfait car trouve_fich retourne tout le chemin du fichier sélectionné (ce qui est quand meme très pratique) mais je n'arrive pas à extraire le nom du document.
par exemple si j'ai c:\mesdocuments\essai.xls , je voudrai me retrouver avec juste essai.xls
Sans pour autant faire un
Je me suis dit qu'il faudrait arriver à supprimer les caractères un par un (pas de problème) et au moment d'arriver sur le dernier "\" le faire une dernière fois et sortir de la boucle.
Mais comment faire pour savoir si c'est le dernier (étant donné qu'il peut y avoir plusieurs sous-dossier et donc 5 voir 6 "\") ...?
trouve_fich=application.getopenfilename
Mais bon, c'est pas parfait car trouve_fich retourne tout le chemin du fichier sélectionné (ce qui est quand meme très pratique) mais je n'arrive pas à extraire le nom du document.
par exemple si j'ai c:\mesdocuments\essai.xls , je voudrai me retrouver avec juste essai.xls
Sans pour autant faire un
car ce sera pas toujours dans mesdocuments.
trouve_fich = right(trouve_fich, Len(trouve_fich) - 16)
Je me suis dit qu'il faudrait arriver à supprimer les caractères un par un (pas de problème) et au moment d'arriver sur le dernier "\" le faire une dernière fois et sortir de la boucle.
Mais comment faire pour savoir si c'est le dernier (étant donné qu'il peut y avoir plusieurs sous-dossier et donc 5 voir 6 "\") ...?
Nan, je suis juste un vieux de la vieille....
J'exerce (exerçais) principalement en Delphi/VB sous Windows, C/C++ sous UNIX, Cobol sous MVS, en support de DB2/Informix/Oracle/SQLSrv Ca fait un vaste périmètre !
Et ça donne l'occasion de tomber sur des tas de trucs et d'astuces que j'ai le plaisir de rendre ici.
On ne me voit pas partout : Je ne poste qu'en programmation et dans le monde de Linux
Par exemple, en ce qui concerne l'édition en ligne (html, php, aps) je ramène souvent ma fraise, mais rarement avec une soluce.
Que tes remerciements nominatifs aillent aussi à tous les autres contributeurs. Ils suffisent à supporter tous les autres malpolis
J'exerce (exerçais) principalement en Delphi/VB sous Windows, C/C++ sous UNIX, Cobol sous MVS, en support de DB2/Informix/Oracle/SQLSrv Ca fait un vaste périmètre !
Et ça donne l'occasion de tomber sur des tas de trucs et d'astuces que j'ai le plaisir de rendre ici.
On ne me voit pas partout : Je ne poste qu'en programmation et dans le monde de Linux
Par exemple, en ce qui concerne l'édition en ligne (html, php, aps) je ramène souvent ma fraise, mais rarement avec une soluce.Que tes remerciements nominatifs aillent aussi à tous les autres contributeurs. Ils suffisent à supporter tous les autres malpolis
Ben dit donc... excuse moi pour le cv, c'est impressionnant.
C'est vrai que sur ce site, comparé à d'autres, les réponse sont peut-etre moins nombreuses, mais elles sont toujours de qualité (ce qui rattrape largement).
Et vu le nombre de personnes compétentes qui y passe (à ton image), ainsi que le temps quelles-y passe, de plus dans domaines extrêmement variés,cela rend ce site d'une très grande qualité.
C'est une vrai réussite. Merci.
*snif* la larme à l'oeil *snif*
C'est vrai que sur ce site, comparé à d'autres, les réponse sont peut-etre moins nombreuses, mais elles sont toujours de qualité (ce qui rattrape largement).
Et vu le nombre de personnes compétentes qui y passe (à ton image), ainsi que le temps quelles-y passe, de plus dans domaines extrêmement variés,cela rend ce site d'une très grande qualité.
C'est une vrai réussite. Merci.
*snif* la larme à l'oeil *snif*
Heureusement que mon avatar est un personnage déjà tout rouge...
Il y a de très nombreuses personnes très compétantes sur ce site... toi y compris. La preuve ici par exemple
Il y a de très nombreuses personnes très compétantes sur ce site... toi y compris. La preuve ici par exemple
Lassé par la pub ? Créez un compte
tu m'en vois flaté