Option Explicit
' 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
Sub Test()
EcrireIni "Test.ini", "SECTION1", "Clé1", "Valeur1"
MsgBox LireIni("Test.ini", "SECTION1", "Clé1"), vbInformation, "RESULTAT"
End Sub
Public Function EcrireIni(stFicIni As String, 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 = ThisWorkbook.Path & "\" & stFicIni
' Mise en place du buffer de lecture
lgRep = WritePrivateProfileString(stSection, stKey, stValeur, FicIni)
If lgRep <= 0 Then
' Erreur au niveau du fichier INI
Dim iFile As Integer
iFile = FreeFile
Open FicIni For Output As #iFile
Print #iFile, "[" & stSection & "]"
Print #iFile, stKey & "=" & stValeur
Print #iFile, Chr(10)
Close #iFile
'EcrireIni = "Erreur"
Exit Function
End If
End Function
Public Function LireIni(stFicIni As String, 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 = ThisWorkbook.Path & "\" & stFicIni
' 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 = "Erreur"
Exit Function
End If
LireIni = Trim$(Left$(stBuf, lgRep))
End Function