Changer le chemin par défaut d'un fichier [Résolu]

Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
- - Dernière réponse : srib
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
- 19 avril 2006 à 14:12
Bonjour les gens,
suite à un précédent post, j'ai pu remarqué que par défaut mon fichier se croit dans le dossier "mes documents" alors qu'il n'y est pas du tout... Plus agaçant, par défault il va chercher mes dll dans ce même répertoire... J'aimerais eviter contourner le problème avec une installation qui vient mettre les DLL dans "mes documents" et le fichier xls dans le répertoire de son choix... (le fichier ne sera pas utilisé que sur mon ordi).
J'ai vu qu'il existe pas mal de propriétés sur les chemins genre UserLibraryPath, LibraryPath, DefaultFilePath, Application.Path... mais j'ai pas réussi à faire avancer le schmilblik...
Si quelqu'un sait comment faire ou à des infos, je suis preneur ;-)

@+ et bonne digestion du WE chocolaté
Sylvain
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
3
Merci
Non, c'est pas une bonne idée de mettre un chemin dans la déclaration des fonctions...

Par contre pourquoi ne met tu pas simplement la dll dans system32 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
2382
Date d'inscription
jeudi 12 juillet 2001
Dernière intervention
15 décembre 2018
0
Merci
Salut,
Je n'est pas suivis ton post mais pour aller au but c'est quoi le problème ?
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Heu, je calcul pas trops pourquoi y a VBA dans le titre...

Par contre pour l'install, je sens bien que tu utilise l'assistant d'empaquetage de VB6 !

Oublie le.

Essaie plutôt InnoSetup.
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
0
Merci
j'ai pas du être très très clair mdr !!!! bon je recommence... en mieux (enfin j'espere).
J'ai un fichier Excel avec des zolies macro qui reprennent des dll qui sont dans le répertoire là où est mon fichier Excel. Ce répertoire peut être suceptible de bougé selon les ordis donc on peut oublié de déclarer les dll dans "c:\patati\patata"...

Si dans ma macro je fais un "Curdir" (équivant de App.path en VB6), je me suis aperçu que le répertoire par défaut utilisé est "mes documents" même si mon fichier Excel n'y est pas. Donc c'est ce "mes documents" que j'aimerais changer.

Voilà, en espérant avoir été plus explicite.
Merci

Sylvain
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Bin c'est un peu plus clair.

D'abord, Curdir n'est pas équivalent à AppPath. AppPath, c'est le chemin d'accès de l'exe, alors que CurDir, c'est le dossier courant. Ensuite, étant un gros inculte, je te demanderais si tu parle de dlls ActiveX ou de dll classiques.

Pour des dlls ActiveX, elle sont retrouvé via leur CLSID, qui une fois trouvé dans la base de registre, permet de retouver le chemin de la dll, ou qu'elle soit.

Pour les autres dlls, il suffit de les mettres dans un chemin répertorié dans la variable d'environement path, ou dans le même dossier que l'exe, ou dans le dossier courant.

Je crois pas avoir répondu à ta question, mais on avance un peu, non ?
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
0
Merci
on avance, on avance... et bien que pas calé en dll, je peux dire que c'est des dll classiques dans mon cas.

donc finalement mon soucis est de définir mon dossier courant (finalement mon problème se résumait à 1 seule ligne ;-))

@+
Sylvain
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Dll classique. Bon, comme c'est des macros, tu dois pas avoir d'exe... Par contre, les dlls sont certainement chargées au lancement de la macro, donc il faudrait que tu peut être que tu change de répertoire... avant d'executer du code !

M'enfin tu peux essayer...

C'est ChDir la commande sous VB6.
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
0
Merci
finalement j'ai réussi lors du lancement du fichier à lire là où sont mes dll :

Declare Function S_p_d Lib "ma_dll.dll" _
(ByVal ref As String, ByVal T As Double, ByRef p_d As Double) As Boolean

j'ai remplacé "ma_dll.dll" par "d:\ma_dll.dll" et ça marche très bien, par contre si je remplace par ChDir & "ma_dll.dll", ou simplement par : "d:" & "ma_dll.dll" là y'a VBA qui m'insulte en me disant qu'il ne veut qu'une chaine de caractères constante... le probleme c'est que moi je ne veux pas que ça soit constant !!

Donc au final, faudrait trouver le moyen de spécifier le dossier courant, ça règlerait le problème à la source, on aurait pas besoin de déplacer le problème...

Qui a dis que je fais mon boulet ??? mdr

@+
Sylvain
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
0
Merci
Je m'excuse d'avance si j'ai mal compris ^^

Ton pb, c'est que tes .dll sont dans le même répertoire que ton fichier Excel, mais que tu n'arrives pas à indiquer par défaut le chemin ? En gros, tu veux obtenir l'équivalent du "App.Path" de VB6 ?

En Excel, cette commande s'écrit tout simplement :
ActiveWorkbook.Path si tu es bien dans ton fichier Exel au moment de l'éxécution de la macro.
Ou alors
Workbooks("Nom du fichier excel").Path

Et finies les questions ^^

Si j'ai mal compris, faites comme si je n'avais rien dit :p

Molenn
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
22 mars 2011
0
Merci
nickel, quand je mets mais dll dans windows/system32 ça fonctionne, par contre c'est bizzar j'avais testé la semaine derniere et ça avait planté... :-s enfin depuis j'avais fait pas mal de modif, donc j'ai du zappé un truc depuis.

Merci beaucoup Rt15, merci à tous.

@+
sylvain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.