Objets manquant : pour la lecture ou l'ecriture dans un fichier INI ? Problemes.
cotzy
Messages postés14Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention18 octobre 2005
-
17 oct. 2005 à 20:15
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
18 oct. 2005 à 17:15
Salut a tous.
J'ai un petit soucis:
je travail actuellement dans un fichier excel je veux ecrire et lire dans un fichier d'initialisation.
Je declare mes variables dans un module
et j'appel ma fonction de lecture par exemple .
J'optiens une erreur d'objet manquant....j'ai du mal a comprendre pourtant je regarde dans les references
et je pense avoir les bons objets de selectionner .
quel objet faut il en particulier ...?
Merci d'avance
Voici un bout de code :
'lecture du ficheir ini ou ce trouve l'erreur :
test = LireINI("nom du serveur", "loc") objet manquant
'variable
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
public test as string
'fonction de lecture
Function LireINI(NomParam As String, NomVar As String) As String
Dim Retour As String
fichier = App.Path & "" & "locsrv" & ".ini"
Retour = String(255, Chr(0))
LireINI = Left$(Retour, GetPrivateProfileString(NomParam, ByVal NomVar, "", Retour, Len(Retour), fichier))
merci de bien vouloir me remettre sur le voie
A voir également:
Objets manquant : pour la lecture ou l'ecriture dans un fichier INI ? Problemes.
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 17 oct. 2005 à 21:14
Lut,
Dans ta fonction a quoi corresponds locsvr si c'est une variable tu ne doit pas la mettre entre guillemets
Function LireINI(NomParam As String, NomVar As String) As String
Dim Retour As String
fichier = App.Path & "" & locsrv & ".ini"
Retour = String(255, Chr(0))
LireINI = Left$(Retour, GetPrivateProfileString(NomParam, ByVal NomVar, "", Retour, Len(Retour), fichier))
cotzy
Messages postés14Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention18 octobre 2005 17 oct. 2005 à 22:52
En effet la fontion : App.Path & "\locsrv.ini" est valable car locsrv est lenom du fichier ini.
donc je pense que ma ligne reveint au meme : App.Path & "" & "locsrv" & ".ini".
je vais verifier si ya pas une erreur dans ma variable de stockage "fichier..."
Re,
testes ce code (trouvé sur Code Source)qui se rapproche du tiens si ce n'est que la fonction est plus détaillée
' Déclaration de la fonction API
Private 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
' Pour enregistrer dans un fichier INI
Private 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
Public Function LireIni(stSection As String, stKey As String, stFichier As String) 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, lgBuf As Long, lgRep As Long
' Mise en place du buffer de lecture
stBuf = Space$(255)
lgBuf = 255
lgRep = GetPrivateProfileString(stSection, stKey, "", stBuf, lgBuf, stFichier)
LireIni = Left$(stBuf, lgRep)
End Function
Public Sub EcrireIni(stSection As String, stKey As String, stValeur As String, stFichier 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)
' stValeur est la valeur à stocker
' stFichier est le fichier à manipuler
WritePrivateProfileString stSection, stKey, stValeur, stFichier
End Sub
cotzy
Messages postés14Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention18 octobre 2005 18 oct. 2005 à 11:07
merci basic instinct mon erreur venait bien de la "application.path"
maintenant d'origine ma target est : c:\programfiles\microsoft office\office\ et le nom de mon fichier
cependant maintenant je rencontre une nouvelle erreur qui elle parait plus tordu ...
cotzy
Messages postés14Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention18 octobre 2005 18 oct. 2005 à 13:05
j'ai déja utiliser cette structure sur un prog vb ca marchait tres bien ; mais la avec excel je sais pas si c'est exactement cette expression pour la declaration des valiable avec "Alias"...?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 oct. 2005 à 13:19
re,
la déclaration est :
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ...
tu as sans doute fait :
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetprivateprofilA" ...
qui est donc un point d'entrée inexistant.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 oct. 2005 à 17:15
re,
tu es bien en application W32 n'est-ce pas?!!!
sinon, tes déclarations d'API se font de la manière suivante
#If Win32 Then
' Profile String functions:
Private 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
Private Declare Function GetPrivateProfileString Lib "KERNEL32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As Any, ByVal lpKeyName As Any, ByVal lpDefault As Any, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
#Else
' Profile String functions:
Private Declare Function WritePrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Integer
Private Declare Function GetPrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As Any, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
#End If