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

srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention - 18 avril 2006 à 08:19 - Dernière réponse : srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention
- 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
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 19 avril 2006 à 13:33
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 ?

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 18 avril 2006 à 10:33
0
Merci
Salut,
Je n'est pas suivis ton post mais pour aller au but c'est quoi le problème ?
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 18 avril 2006 à 16:35
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.
srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention - 19 avril 2006 à 09:01
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
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 19 avril 2006 à 10:03
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 ?
srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention - 19 avril 2006 à 11:01
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
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 19 avril 2006 à 12:16
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.
srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention - 19 avril 2006 à 13:27
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
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 19 avril 2006 à 13:45
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
srib 23 Messages postés lundi 30 décembre 2002Date d'inscription 22 mars 2011 Dernière intervention - 19 avril 2006 à 14:12
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.