1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| Option Explicit
Dim T As Long, U As Long, NumFich As Integer
Dim MonFichier As String, Chaine As String, TblCol() As String, SeparateuR As String
Private Sub Form_Load()
'positionne les éléments
Command1.Move 120, 60, 1035, 315: Command1.Caption = "Ouvrir"
Command2.Move 1200, 60, 1035, 315: Command2.Caption = "Enregistrer"
Command3.Move 120, 420, 2115, 315: Command2.Caption = "Enregistrer"
MSFlexGrid1.Move 0, 780, 5175, 3075
Me.Height = 4425: Me.Width = 5415
MSFlexGrid1.Rows = 10
MSFlexGrid1.FixedRows = 1
MSFlexGrid1.Cols = 5
MSFlexGrid1.FixedCols = 0
'Histoire de remplir le grid
MSFlexGrid1.FormatString = "colonne 1|colonne 2|colonne 3 |colonne 4|colonne 5" 'titrage des colonnes
For T = 1 To MSFlexGrid1.Rows - 1
For U = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(T, U) = Chr(64 + T + U) 'remplis chaque cellule
Next U
Next T
SeparateuR = vbTab '<---------- caractère quelconque, celui que tu veux
End Sub
Private Sub Command1_Click()
'Ouvrir
MSFlexGrid1.Clear 'vider toutes les cellules du grid
MSFlexGrid1.Rows = 1: MSFlexGrid1.Cols = 1: T = 1
CommonDialog1.ShowOpen
MonFichier = CommonDialog1.FileName
NumFich = FreeFile
Open MonFichier For Input As #NumFich
Do While Not EOF(NumFich) ' Effectue la boucle jusqu'à la fin du fichier.
Line Input #NumFich, Chaine ' récupération de la ligne
TblCol = Split(Chaine, SeparateuR) 'éclate la ligne en colonne
If T = 1 Then MSFlexGrid1.Cols = UBound(TblCol) + 1 'dimensionne le nombre de colonne du grid (une seule fois)
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1 'ajoute une ligne au grid
For U = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(T, U) = TblCol(U) 'rempli chaque colonne
Next U
T = T + 1 'préparation pour la suite
Loop
Close NumFich
End Sub
Private Sub Command2_Click()
'Enregistrer
CommonDialog1.ShowSave
MonFichier = CommonDialog1.FileName
NumFich = FreeFile
Open MonFichier For Output As #NumFich
For T = 1 To MSFlexGrid1.Rows - 1
Chaine = ""
For U = 0 To MSFlexGrid1.Cols - 1
Chaine = Chaine & MSFlexGrid1.TextMatrix(T, U)
'pour ne pas ajouter un séparateur à la dernière colonne
If U <> MSFlexGrid1.Cols - 1 Then Chaine = Chaine & SeparateuR
Next U
Print #NumFich, Chaine 'ecrit la ligne
Next T
Close NumFich
End Sub
Private Sub Command3_Click()
'Vider le FlexGrid
MSFlexGrid1.Clear
End Sub |
Partager