[[Excel VBA]]créer chemin entre macro feuille

Lila_35 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

La situation est :
d'une part un fichier MesMacros.xls où se trouve toutes mes macros et d'autre part un fichier MesFeuilles.xls où j'entre mes données et qui fait appel aux macros de MesMacros.xls.

Dans MesFeuilles.xls, il y a tous les mois de l'année (janvier, février, ... , décembre) avec trois boutons fesant appel aux macros plus une feuille (description) non visible par l'utilisateur où l'on stock des données.
C'est sur cette feuille, dans une cellule que je souhaite stocker le chemin de MesMacros.xls afin de ne pas avoir à re paramétrer tous les boutons pour chaque feuille.

Je dois utiliser l'afffectation suivante mais je ne sais pas où la traiter.

Chemin = ThisWorkbook.Path

Merci
A voir également:

6 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
si tonclasseurs.xls est dans le même dossier que macros.xls, les macros que je t'avais donné l'autre jour n'ont pas besoin d'indiquer le chemin si tu es situé dans ce dossier.
http://www.commentcamarche.net/forum/affich 12938476 vba excel selectionner un plage

ici, macros.xls peut être déplacé ailleurs sur le m^me poste et l'inscription automatique de son chemin dans la base de registre permet d'indiquer celui-ci dès que tu ouvres tonclasseur.xls

macro dans macros.xls
dans thisworkbook
Private Sub Workbook_Open()
Dim chemin As String
chemin = ThisWorkbook.Path
'écriture dans HKey_current_user/software / VB and VBA Program settings
 SaveSetting appname:="ccm", section:="lilas", key:="lieu", setting:=chemin
End Sub

dans module1
<code>Sub EffacedansRegistre()
     On Error Resume Next
     DeleteSetting "ccm"
End Sub

-----
macro dans tesclasseurs.xls
Private Sub Workbook_Open()
'lecture dans HKey_current_user/software / VB and VBA Program settings
Range("A1") = GetSetting(appname:="ccm", section:="lilas", key:="lieu")
End Sub

</code>
1
Lila_35
 
Quelqu'un a une idée ?

Merci
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
salut lila35

Hé,ho, laisse moi le temps de me réveiller!...
ci joint démo en utilisant la base de registres (HKey_current_user/software / VB and VBA Program settings)
https://www.cjoint.com/?gxk1dB0Dwf
après avoir télécharger dans un coin perdu de ton HD
tu lances macros.xls
tu fermes
tu lances classeur2 (pour tes classeurs de travail)
tu as le chemin de macros.xls en cellule A1; a toi d'adapter avec une variable publique

les macros sont dans thisworkbook et pour nettoyer la base de registre dans un module de macros.xls
0
Lila_35
 
Bonjour michel_m,

Malheureusement, je ne peux pas télécharger ton fichier (restriction toujours là).

J'ai déjà un petit truc codé dans ThisWorkbook de MesFeuilles.xls :
Private Sub Workbook_Open()

Dim chemin As String
Dim fichier As String
Dim nb_car As Integer

    nb_car = Len(ThisWorkbook.Name)

    chemin = Left(ThisWorkbook.Path, Len(ThisWorkbook.FullName) - nb_car)
    chemin = chemin & "\MesMacros.xls"
    

End Sub


C'est quoi
ci joint démo en utilisant la base de registres (HKey_current_user/software / VB and VBA Program settings) 
?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lila_35
 
Ok super info michel_m.

Je ne suis pas sur que les utilisateurs aura les droits pour passer par la base de registre. N'y aurait il pas un autre moyen?

Sinon cette solution est très bien.

Merci pour ton aide.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
faut voir avec tes admins: normalement pas de pb car, sans le savoir (heureusement d'ailleurs), on écrit et on extrait tout le temps des données dans les registres.
Attention, cependant, le truc que je t'ai donné ne fonctionne qu'en monoposte: si macro.xls est sur un serveur, on ne peut l'utiliser.
0