MSFLEXGRID Problême surement très simple

narcissbga Messages postés 5 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 14 octobre 2004 - 13 juin 2004 à 16:21
cs_Jamig Messages postés 2 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 9 octobre 2004 - 9 oct. 2004 à 20:45
Bonjour,

J'ai un MSFLEXGRID, et je souhaite simplement pouvoir sauvegarder / charger le contenu de la grille ( en fait j'ai simplement besoin de sauvegarder/charger le backcolor des cellules car j'ai crée un truc pour que lorsque l'on clique sur une cellule ça la grise par exemple ) et si possible dans un fichier .txt si c'est plus simple.

Je préfère tout de même prévenir que je débute en vb6, et l'enregistrement est la dernière chose qu'il manque à mon application, donc merci de tenir compte de mes capacités si vous me donnez une réponse, car si vous me dites " il faut utiliser tel ou tel commande ", je serais toujours bloqué..

Merci bien,
Guillaume.

4 réponses

narcissbga Messages postés 5 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 14 octobre 2004
13 juin 2004 à 19:57
Suite du message :

J ai réussi à enregistrer dans un fichier txt et de le lire ensuite ( open, output, input ), c est très simple lorsqu'il sagit de text1, text2..

Mais avec un MSFLEXGRID, comment procéder ?
0
Zzbehappy Messages postés 24 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 avril 2007
24 juin 2004 à 10:33
Salut,

Je n'ai pas de solution miracle. Mais si j'ai bien compris la question, le plus simple est de faire une boucle pour parcourir toutes les cellules et de les enregistrer. Pour les charger, il suffira de faire l'inverse

Dim Donnée as XXXXX

Freecan=Freefile

Open Adresse ......

For t = PremièreLigne to DernièreLigne
MSFLEXGRID.row = t

For tt = PremièreColonne to DernièreColonne
MSFLEXGRID.Col = tt
Donnée = MSFLEXGRID.text
Whrit #Freecan, Donnée
Next tt

Next t

Close

J'espère avoir répondu à ta question. Surtout ne pas oublier la déclaration de la variable Donnée, sans quoi une éreur serait généré.
0
cs_Jamig Messages postés 2 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 9 octobre 2004
9 oct. 2004 à 18:50
Tu places dans ton projet 1 "class module" avec cette fonction:
Public Function ExportGridToFile(Mygrid1 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
Dim auxLigne As String * 31

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 strFileName For Output Access Write Lock Read Write As #intFreeFile

Ligne = ""
For j = 0 To 1
   auxLigne = Mygrid1.TextMatrix(0, j)
   Ligne = Ligne & strSep & auxLigne & strSep
Next j
Print #intFreeFile, Ligne
Print #intFreeFile, ""
With Mygrid1
    '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 & strSep & .TextMatrix(intRow, intCol) & strSep
            auxLigne = .TextMatrix(intRow, intCol)
            Ligne = Ligne & strSep & auxLigne & 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

Dans le form ou se trouve ton msflexgrid, tu ajoute un "commondialog"
Dans le menu editor:
caption=Enregistrer sous
name=save
Tu ecrits ce code:

Private Sub Save_Click()
Form_.Show
   Dim sfile As String
    
    With CommonDialog1
        .DialogTitle = "Save Data"
        .FileName = ""
        .CancelError = True
        On Error GoTo ErrHandler
        'ToDo: set the flags and attributes of the common dialog control
        .Flags = &H4
        .Filter = "Fichier texte (*.txt)|*.txt"
        
        .ShowSave
        
        If Len(.FileName) = 0 Then
            Exit Sub
        End If
        sfile = .FileName
    End With

    'verifie si le fichier existe
    Dim s As String
    Dim resp As Integer
    
    s = Dir(sfile)
    If Len(s) <> 0 Then
        resp = MsgBox("Fichier  '" & sfile & "'  existe deja." & Chr(13) & _
                "Desires-tu le substituer ?", _
                vbYesNo + vbExclamation + vbDefaultButton2, _
                " Alerte")
        If resp = vbNo Then
            Exit Sub
        End If
    End If
    
    Call ExportGridToFile(MSFlexGrid1, CommonDialog1.FileName)

ErrHandler:
End Sub
0
cs_Jamig Messages postés 2 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 9 octobre 2004
9 oct. 2004 à 20:45
une petite erreur de digitation:
Tu places dans ton projet 1 "class module avec cette fonction"
Expression correcte:
Tu places dans ton projet 1 " module avec cette fonction"[/

Toutes mes excuses! 8-)
0
Rejoignez-nous