Ecrire dans un fichier

cs_stargates
Messages postés
40
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
10 janvier 2008
- 1 août 2004 à 15:51
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
- 2 août 2004 à 09:19
Je voudrais ecrire les donnees de ma flexgrid dans un fichier texte pour qu'il les enregistre afin qu'il revienne a chaque ouverture du formulaire contenant la flexgrid

j'ai repris une fonction existante sur le site que j'appelle par le click d'un bouton de commande mais rien ne se passe????

///////////////
Code
///////////////

Private Sub cmdEnregistrer_Click()
Call ExportGridToFile(flex1, strFileName, strSep)
End Sub

Public Function ExportGridToFile(flex1 As MSFlexGrid, ByVal strFileName As String, _
Optional ByVal strSep As String = vbTab) As Boolean

Dim intFreeFile As Integer 'Numéro du fichier
Dim intCol As Integer, intRow As Integer 'Indices de ligne et colonne de W
Dim ligne As String 'La ligne à écrire dans le fichier

On Error GoTo ExportGridToFile_ERR

'Prend le prochain numéro de fichier
intFreeFile = FreeFile

'Ouvre le fichier en bloquant son accès aux autres applications
Open App.Path & strFileName For Output Access Write Lock Read Write As #intFreeFile

With flex1
'Pour chaque ligne
For intRow = .FixedRows To .Rows - 1
ligne = ""
'Pour chaque colonne
For intCol = .FixedCols To .Cols - 1
'Ajoute la valeur de la cellule
ligne = ligne & .TextMatrix(intRow, intCol) & strSep
Next intCol
'Enlève le séparateur final
If strSep <> "" Then ligne = Left(ligne, Len(ligne) - 1)
Print #intFreeFile, ligne
Next intRow
End With

'Valide le bon fonctionnement de la fonction
ExportGridToFile = True

ExportGridToFile_FIN:
Close #intFreeFile + 1
Exit Function

ExportGridToFile_ERR:
ExportGridToFile = False
Resume ExportGridToFile_FIN

End Function

merci de votre aide

4 réponses

conseildg
Messages postés
86
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 mars 2007

1 août 2004 à 16:28
il me semble que le point avant Rows ou Cols dans
For intRow = .FixedRows To .Rows - 1
ou
For intCol = .FixedCols To .Cols - 1

doit donner une erreur.
0
cs_stargates
Messages postés
40
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
10 janvier 2008

1 août 2004 à 18:06
Je viens d'essayer ca ne change rien
Avec la première méthode et la deuxième
j'ai été voir le fichier n'est même pas créer

merci quand même
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
1 août 2004 à 22:04
Close #intFreeFile + 1

pourquoi tu fait + 1 dans close ?

quelle est la valeur de ExportGridToFile à la fin de la Fonction ? si la valeur est False c'est qu'il y a eu une erreur avant l'écriture du fichier. Pour que VB affiche l'erreur, essaye de mettre temporairement une rem devant la ligne On Error GoTo ExportGridToFile_ERR et relance le programme sous VB, c'est-à-dire sans être compilé ...

DANIEL
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
2 août 2004 à 09:19
Pour conseildg < Le . devant fixedRows ou Rows, etc ... est tout àç faitr correct. On est en effet dans une portion de code entre un With NomObjet et un End With ... Donc mettre .FixedRows, revient à taper NomObjet.FixedRows. C'est ok pour la syntaxe. De toute façon s'il avait une erreur de syntaxe, son code bloquerait.

Christophe R.
0