Changer le chemin par défaut d'un fichier

Résolu
Signaler
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011
-
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011
-
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

10 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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 ?
3
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Salut,
Je n'est pas suivis ton post mais pour aller au but c'est quoi le problème ?
0
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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.
0
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011

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
0
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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 ?
0
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011

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
0
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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.
0
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011

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
0
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
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
0
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011

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
0