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 34
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
Rejoignez-nous