Aquí dejo unas funciones para pasar los datos de un MSFlexGrid a un archivo .txt y viceversa.

Código:
  1. Option Explicit
  2.  
  3. ' Nota: Si trabajas con MSHFlexGrid, sustituye el 1er parámetro por MSHFlexGrid
  4. Public Function GridAtxt(fGrid As MSFlexGrid, sRuta As String)
  5.  Dim GridSel As String
  6.  With fGrid
  7.  .Row = 0
  8.  .Col = 0
  9.  .RowSel = .Rows - 1
  10.  .ColSel = .Cols - 1
  11.  GridSel = .Clip
  12.  ' cargamos los datos del Grid en el txt
  13. Open sRuta For Output As #1
  14.  Print #1, GridSel
  15.  Close #1
  16.  ' creamos un archivo con el mismo nombre pero con extensión .grd para
  17. ' guardar en él algunos datos del Grid (sólo he puesto los esenciales para
  18. ' que no dé error al pasar del txt al Grid, pero se podrían poner mas
  19. ' ex. ancho de columnas, formato, etc...
  20. sRuta = Replace(sRuta, "txt", "grd")
  21.  Open sRuta For Output As #1
  22.  Print #1, .Rows; ","; .Cols; ","; .FixedRows; ","; .FixedCols
  23.  Close #1
  24.  .Row = 1
  25.  .Col = 0
  26.  End With
  27. End Function
  28.  
  29.  
  30. Public Function TxtAGrid(fGrid As MSFlexGrid, sRuta As String)
  31.  Dim nRows As Integer, nCols As Integer, fRows As Integer, fCols As Integer
  32.  On Error GoTo errOpen
  33.  Open sRuta For Input As #1
  34.  Do While Not EOF(1)
  35.  Input #1, nRows, nCols, fRows, fCols
  36.  Loop
  37.  ' aplicamos al Grid las propiedades tomadas del archivo .grd
  38. With fGrid
  39.  .Clear
  40.  .Rows = nRows
  41.  .Cols = nCols
  42.  .FixedRows = fRows
  43.  .FixedCols = fCols
  44.  .Row = 0
  45.  .Col = 0
  46.  .RowSel = .Rows - 1
  47.  .ColSel = .Cols - 1
  48.  Close #1
  49.  ' abrimos el archivo con los datos del Grid (.txt)
  50. sRuta = Replace(sRuta, "grd", "txt")
  51.  Open sRuta For Input As #1
  52.  .Clip = Input(LOF(1), #1)
  53.  Close #1
  54.  .Row = 0
  55.  .Col = 1
  56.  End With
  57.  Exit Function
  58. errOpen:
  59.  If Err.Number = 53 Then
  60.  MsgBox "El archivo " & sRuta & " no existe"
  61.  Else
  62.  MsgBox Err.Number & " - " & Err.Description
  63.  End If
  64. End Function

Llamadas a la función:


Código:
  1. Private Sub GuardarEnTxt_Click()
  2.  CommonDialog1.Filter = "Archivos de texto (*.txt) |*.txt|Todos (*.*)|*.*"
  3.  CommonDialog1.InitDir = App.Path
  4.  CommonDialog1.ShowSave
  5.  If CommonDialog1.FileName = "" Then Exit Sub
  6.  GridAtxt MSFlexGrid1, CommonDialog1.FileName
  7. End Sub
  8.  
  9. Private Sub CargaGrid_Click()
  10.  CommonDialog1.Filter = "Archivos Grid (*.grd)|*.grd|Todos (*.*)|*.*"
  11.  CommonDialog1.InitDir = App.Path
  12.  CommonDialog1.ShowOpen
  13.  If CommonDialog1.FileName = "" Then Exit Sub
  14.  TxtAGrid MSFlexGrid2, CommonDialog1.FileName
  15. End Sub

Nota: El Flex2 puede estar en el mismo formulario o en otro cualquiera.

Saludos