|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour le forum,
Je voudrais laisser à mes utilisateurs le choix de choisir le fichier vers lequel ils veulent exporter des formulaires. En fouinant un peu, j'ai trouvé ce code (mille excuses à l'auteur dont j'ai effacé le nom et que je ne retrouve pas). Code :
Le problème est que si mon utilisateur clique sur "Mes Documents", la fonction renvoie une variable strChemin vide, et que je ne comprends pas pourquoi. Est-ce que ça vous est déjà arrivé? Ou est-ce que vous avez un autre code qui me permettrait en plus de laisser à l'utilisateur de choisir le nom de l'exportation (Dossier machin.xls, par exemple)? |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Essaie en remplaçant la ligne Code :
strChemin = ObjFolder.ParentFolder.ParseName(ObjFolder.Title).Path & "" Pour ta dernière question essaie (Access 2002 minimum) Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour,
Super, ton code me convient parfaitement. C'est bien mieux que ma solution actuelle. Merci. |
|
|
00
|
|
|
#4 | |||
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Citation:
Je te demande ça car je dois aussi afficher une boite de dialog pour choisir un repertoire. Merci |
|||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour,
Il faut sûrement adapter, mais j'ai ajouté cette ligne de code à la fin au cas où mon utilisateur efface l'extension. Code :
If InStr(InStrRev(strFichEnrSous, "\", , vbTextCompare), strFichEnrSous, ".", vbTextCompare) = 0 Then strFichEnrSous = strFichEnrSous & ".xlsx" La solution de LedZeppII permet d'ouvrir la fenêtre Enregistrer Sous "habituelle" et de pouvoir retrouver le nom donné au fichier sauvegardé par l'utilisateur. C'est bien plus complet. |
|
|
00
|
|
|
#6 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Bonjour, devant utiliser la fonctionnalité qui consiste a choisir le dossier de sauvegarde, je me penche sur la question, et en parcourant le forum, j'ai trouvé ce post :
http://www.developpez.net/forums/d17...s/explorateur/ Le code du lien ci-dessus est un peu plus complexe, je me demande donc quelle différence y a t-il avec celui de neiluj pour savoir lequel je dois utiliser ? Il utilise des librairie alors que celui de neiluj non. Est ce que celui de neiluj fonctionnera sur n'importe quel type de windows de versions access etc... Merci de votre aide. a bientot. David |
|
|
00
|
|
|
#8 | ||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Pour moi, les deux codes pour choisir un dossier sont identiques. Argyronet fait appel aux fonctions de l'API Windows. Cela nécessite des déclarations (Private Declare ...) pour que VBA sache comment appeler les fonctions et dans quelle dll les trouver. neiluj26 fait appel à l'objet Shell.Application (Microsoft Shell Controls And Automation) qui inclut une méthode pour appeler, vraisemblablement, la même fonction. Le travail est "prémaché" et plus simple en VBA avec Shell.Application. neiluj26 n'utilise pas de référence VBA, mais on peut en mettre une à "Microsoft Shell Controls And Automation". Au lieu d'écrire ... Code :
Code :
Les deux méthodes sont, à mon avis, sensibles à la version de Windows. A+ |
||||
|
|
00
|
|
|
#9 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Citation:
Si oui lequel de ces deux codes fonctionnera sur tous les windows. J'avoue avoir une préférence pour le code de neiluj bien plus simple... Merci |
|
|
|
00
|
|
|
#10 | ||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour _developpeur_,
J'aurai une préférence pour la méthode de neiluj, moi aussi. Elle est plus simple. Elle est peut-être moins dépendante de la version de Windows, mais ça je ne peut pas le vérifier. Ce dont je suis un peu plus sûr, c'est que la version avec API fonctionne avec un Windows 32-bits, mais risque de pas fonctionner avec un Windows 64-bits et Acces 64-bit (voir Développer avec Office 64 bits). Il y a une autre possiblité. A partir d'Access 2003 (à vérifier; Ok avec 2007) on peut utiliser FileDialog. L'affichage est un peu différent de celui de BrowseForFolder. En ajoutant une référence VBA à Microsoft Office xx.x Object Library : Code :
Code :
|
||||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Bonjour LedZepp, merci beaucoup je vais prendre ta dernière solution sans références.
Encore merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com