Re : Récupérer une variable d'une macro déclarée dans le dossier personnel (PERSONAL.
Salut Dranreb,
j'ai essayé ta solution mais je ne trouve pas encore le moyen de résoudre mon problème.
Peut-être me suis-je mal exprimé ou mon explication manque de clarté ?
Voici les étapes détaillées du projet.
Ouverture d'Excel - menu Affichage --> Macros et création d'une nouvelle macro dans le "Classeur de macros personnelles"
Cette nouvelle macro est en principe accessible après chaque lancement d'Excel et voici son code source :
'****************************************************************
Sub lire_fichier_ini(param1, param2)
'
' lire_fichier_ini Macro
'
Dim intFic As Integer
Dim strLigne As String
Dim lignes As String
Dim cpt As Integer
intFic = FreeFile
Open "C:\Gestion heures cours d'eau\configuration\config.ini" For Input As intFic
While Not EOF(intFic)
Line Input #intFic, strLigne
MsgBox ("Dans macro globale --> " & strLigne) 'affiche ligne après ligne
If lignes = "" Then
lignes = strLignes & vbCrLf
Else
lignes = lignes & strLigne & vbCrLf
End If
Wend
Close intFic
MsgBox (lignes) ' affiche tout le fichier ini
MsgBox (param1 * param2) ' c'est pour tester si les 2 paramètres sont bien reçus par la macro et c'est le cas
End Sub
'*****************************************************************
Pour info voilà le contenu de mon fichier config.ini (fichier texte)
'*****************************************************************
[Chemin acces au programme gestion des heures]
unité=c:\
chemin=Gestion heures cours d'eau
NomFichier=602 Cours d'eau
'*****************************************************************
Je lance une nouvelle session Excel. J'enregistre ce fichier Excel sous "602 Cours d'eau menu.xls"
Je crée ensuite un nouveau UserForm "ChoixFichier" (ce formulaire est vide, pas de champs de saisie pour l'instant)
Pour terminer j'insère le code suivant dans l'évènement Workbook_Open() c.a.d que mon UserForm est chargé automatiquement lors du lancement du fichier Excel "602 Cours d'eau menu.xls"
'*****************************************************************
Private Sub Workbook_Open()
Load ChoixFichier
ChoixFichier.Show
End Sub
'*****************************************************************
Dans le UserForm "ChoixFichier" j'ai mis le code suivant sur la propriété UserForm_Initialize()
'*****************************************************************
Private Sub UserForm_Initialize()
dim reponse as string
reponse = Application.Run("PERSONAL.XLSB!lire_fichier_ini", 70, 5) 'lancement de ma macro personnelle
MsgBox ("Macro result: " & reponse)
End Sub
'*****************************************************************
Et enfin voici le problème sur lequel je bute. Le code ci-dessus "MsgBox ("Macro result: " & reponse)" me donne rien ???
Commet dois-je procéder pour que la variable reponse contienne bien la valeur de la variable lignes de la macro lire_fichier_ini ?
Merci de ton aide car si je ne trouve pas de solution je vais devoir embarquer dans chaque fichier Excel les valeures du fichier
"config.ini". Dur dur la maintenance du code.
Cordialement
Ratos