Pb de Récuperation de variable

  • Initiateur de la discussion Initiateur de la discussion barry white
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

barry white

XLDnaute Occasionnel
Bonjour,

J'ai un document excel avec des valeurs, j'ai integré une macro a ce document. Cette macro éxécute l'ouverture d'un fichier project, lors de l'ouverture de ce fichier, excel execute une macro project.

Mais le souci que j'ai, c'est que j'aimerai bien integré dans cette macro project une variable qui se trouve dans mon document excel.

Comment puis je integré cette variable dans la macro project?

Merci d'avance.
 
Re : Pb de Récuperation de variable

Bonjour Barry blanc

sans plus de précisions et sans fichier joint, tu risques de ne pas avoir beaucoup de réponses............................Précise ta question !!!

Je refais mon explication alors 😉

J'ai un fichier excel avec des données de la collone (notament des dates) "A" jusqu'a la "G".

Dans ce fichier excel j'ai integré une "macro excel" qui ouvre un fichier project "MPP" et éxecute un macro PROJECT juste apres l'ouverture de celui- ci.

Mais le pb que j'ai c'est juste apres le traitement de la "macro PROJECT" je fais un "enregistrez sous" sous un format bien spécifique.

J'ai toutes les variable pour effectuer l'enregistrement, sauf "une" qui se trouve dans mon tableau excel ou j'ai executé la 1er macro "manuelement".

Je ne sais pas transmettre une variable qui se trouve dans mon excel et l'introduire dans la macro PROJECT.

est ce plus clair?😀
 
Re : Pb de Récuperation de variable

Salut a toi au GRAND Barry White 😉😀

J'utilise une API pour écrire/lire dans un fichier INI, je pense que ce peut être la solution.

Code:
' Fonctions API pour lire et écrire dans les fichier INI
Public Declare Function GetPrivateProfileString Lib "kernel32" _
        Alias "GetPrivateProfileStringA" _
        (ByVal lpApplicationName As String, _
        ByVal lpKeyName As Any, _
        ByVal lpDefault As String, _
        ByVal lpReturnedString As String, _
        ByVal nSize As Long, _
        ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" _
        Alias "WritePrivateProfileStringA" _
        (ByVal lpApplicationName As String, _
        ByVal lpKeyName As Any, _
        ByVal lpString As Any, _
        ByVal lpFileName As String) As Long
 
' Les fontions à utiliser
Public Function LireIni(stSection As String, stKey As String)
' Lecture d'une valeur dans un fichier INI
' stSection est le la partie designée entre crochets ([option] par exemple)
' stKey est le nom de la clé à récupérer (COULEUR=... par exemple)
Dim stBuf As String, FicIni As String, lgBuf As Long, lgRep As Long
FicIni = "C:\MonDossier\SousDossier\NomFichier.ini"
' Mise en place du buffer de lecture
stBuf = Space$(255)
lgBuf = 255
lgRep = GetPrivateProfileString(stSection, stKey, "", stBuf, lgBuf, FicIni)
If lgRep <= 0 Then
    ' Erreur au niveau du fichier INI
    LireIni = ""
    Exit Function
End If
LireIni = Trim$(Left$(stBuf, lgRep))
End Function
 
Public Function EcrireIni(stSection As String, stKey As String, stValeur As String)
' Ecriture d'une valeur dans un fichier INI
' stSection est le la partie designée entre crochets ([option] par exemple)
' stKey est le nom de la clé à récupérer (COULEUR=... par exemple)
' stValeur est la valeur à stocker
Dim FicIni As String, lgRep As Long
FicIni = "C:\MonDossier\SousDossier\NomFichier.ini"
' Mise en place du buffer de lecture
lgRep = WritePrivateProfileString(stSection, stKey, stValeur, FicIni)
If lgRep <= 0 Then
    ' Erreur au niveau du fichier INI
    EcrireIni = "Erreur"
    Exit Function
End If
End Function

Ton fichier INI doit se présenter comme suit :
[SECTION]
Clé=Valeur

1) dans Excel tu utilises l'API pour ECRIRE la valeur au niveau de la section et de la clé souhaitée

2) dans Project tu utilise l'API pour LIRE la vaeur

Dis moi si le code n'est pas assez explicite

Voilà 😉
 
Dernière modification par un modérateur:
Re : Pb de Récuperation de variable

merci beaucoup.

Bon effectivement je veux bien qq explications! je le mets ou dans mon codE??

je vois pas ce qu'est un API.

Mais je pense que c'est la bonne methode à appliquer, c'est aussi pour un suivi..
 
Re : Pb de Récuperation de variable

merci beaucoup.

Bon effectivement je veux bien qq explications! je le mets ou dans mon codE??

je vois pas ce qu'est un API.

Mais je pense que c'est la bonne methode à appliquer, c'est aussi pour un suivi..

bon j'ai trouvé ou fallait que j'introduise le code.

Par contre quand j'execute la macro Excel pour ecrire dans le fichier INI,

j'ai le message "d'erreur de compilation, Incompatibilité de type" et il me surligne la variable Stkey.

Merci de ton aide.
 
Re : Pb de Récuperation de variable

Salut Barry White 😉

J'ai récupé ce code d'une de mes bases Access,
et j'ai oublié de modifier le code

Il faut remplacer
Code:
FicIni = Application.CurrentProject.Path & "\SuiviCht.ini"
Par
Code:
FicIni = ThisWorkbook.Path & "\NomFichier.ini"
Ou le chemin en dur
Code:
FicIni = "C:\MonDossier\SousDossier\NomFichier.ini"

Ensuite si tu test
Code:
Sub Test()
  EcrireIni "CODE", "Test", "Essai"
End Sub

Chez moi ça fonctionne 😉

En ce qui concerne les API windows, tu peux trouver l'explication ici : http://fr.wikipedia.org/wiki/Windows_API

A+
 
Dernière modification par un modérateur:
Re : Pb de Récuperation de variable

Oki merci j'arrive à appliquer le test, je comprends le principe maintenant. Mais par contre je n'arrive pas intégré une variable non fixe. Dans ton exemple la valeur "Essai" est fixe dans la macro. Moi je recupere cette variable dans une cellule excel, quand j'execute la macro ca me dit :

"Erreur de compliation Type d'argument ByRef incompatible"

Comment faire pour ecrire une varibale dans un INI?

merci!!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
483
  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
299
Réponses
5
Affichages
194
Retour