Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/10/2006, 17h44   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 3
Points : 3
Par défaut [WORD] Souci avec le passage de variable

Bonjour,

j'aimerais savoir s'il est possible de passer des variables dans les fonctions de lecture d'un fichier INI.
En effet, à chaque fois que mon programme lance la fonction LitDansFichierIni() il m'envoi un message d'erreur (Type d'argument ByRef incompatible) alors que mes paramètres sont des valeurs (des strings).
Que dois-je faire ? Est-ce que les variables (des strings) ne peuvent pas être autorisé dans la fonction GetPrivateProfileString ? Si c'est autorisé quelqu'un pourrait-il m'indiquer comment modifier le code pour accepter le passage de ma variable.

Merci d'avance pour votre aide.
Shifty44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h54   #2
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 675
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 675
Points : 7 645
Points : 7 645
Pour le modifier, il faudrait déjà qu'on le voie, ton code.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 18h09   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 3
Points : 3
Désolé je nétais pas sûr de pouvoir le mettre en entier!!

Donc à la demande je le mets :

Code :
1
2
3
  chemin = ThisDocument.Path
  fichierINI = chemin & "\Parametre.ini"
  MAJCheck = LitDansFichierIni("variable", "CheckdeMAJ", fichierINI , "True")
et pour les fonctions de lecture c'est celles normales de lecture d'un fichier INI à savoir :

Code :
1
2
3
4
5
6
7
8
9
10
11
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
 
 
Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, Optional ValeurParDefaut As String = "") As String
Dim strReturn As String
strReturn = String(255, 0)
GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)
End Function
Encore désolé d'avoir perdu du temps en ayant pas mis le code direct et merci de vos réponses...
Shifty44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 22h15   #4
Membre habitué
 
Avatar de wape
 
Inscription : février 2003
Messages : 90
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 90
Points : 101
Points : 101
Bonjour,

Essaye de déclarer explicitement la variable fichierINI :

Code :
Dim fichierINI As String
Si cette variable n'est pas déclarée, elle sera considérée par défaut comme étant de type "Variant".
Or la fonction LitDansFichierIni() s'attend à recevoir, comme 3ème paramètre, une variable de type
"String", d'où l'incompatibilité...


wape
wape est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 22h48   #5
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
Code :
1
2
Private Function LitDansFichierIni(Section As String, Cle As String, _
     Fichier As String, Optional ByVal ValeurParDefaut As String = "") As String
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 23h06   #6
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 3
Points : 3
En effet, c'était bien ça ; je n'aurais jamais pensé à déclarer la variable vu que VB 6 acceptait tous les paramètres et leurs types sans les déclarer!^^

Merci beaucoup en tout cas car cela fonctionne nickel maintenant.
Shifty44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h39.


 
 
 
 
Partenaires

Hébergement Web